獲取連線SQL伺服器的資訊

2021-04-02 14:16:27 字數 2046 閱讀 2675

/*--獲取連線sql伺服器的資訊

所有連線本機的:操作的資料庫名,計算機名,使用者名稱,網絡卡實體地址,ip位址,程式名

--鄒建 2003.11(引用請保留此資訊)--*/

/*--呼叫示例

--顯示所有本機的連線資訊

exec p_getlinkinfo

--顯示所有本機的連線資訊,包含ip位址

exec p_getlinkinfo @includeip=1

--顯示連線指定資料庫的資訊

exec p_getlinkinfo '客戶資料'

--*/

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[p_getlinkinfo]') and objectproperty(id, n'isprocedure') = 1)

drop procedure [dbo].[p_getlinkinfo]

gocreate proc p_getlinkinfo

@dbname sysname=null,--要查詢的資料庫名,預設查詢所有資料庫的連線資訊

@includeip bit=0--是否顯示ip位址,因為查詢ip位址比較費時,所以增加此控制

asdeclare @dbid int

set @dbid=db_id(@dbname)

create table #tb(id int identity(1,1),dbname sysname,hostname nchar(128),loginname nchar(128),net_address nchar(12),net_ip nvarchar(15),prog_name nchar(128))

insert into #tb(hostname,dbname,net_address,loginname,prog_name)

select distinct hostname,db_name(dbid),net_address,loginame,program_name from master..sysprocesses

where hostname<>'' and (@dbid is null or dbid=@dbid)

if @includeip=0 goto lb_show  --如果不顯示ip位址,就直接顯示

declare @sql varchar(500),@hostname nchar(128),@id int

create table #ip(hostname nchar(128),a varchar(200))

declare tb cursor local for select distinct hostname from #tb

open tb

fetch next from tb into @hostname

while @@fetch_status=0

begin

set @sql='ping '+@hostname+' -a -n 1 -l 1'

insert #ip(a) exec master..xp_cmdshell @sql

update #ip set hostname=@hostname where hostname is null

fetch next from tb into @hostname

endupdate #tb set net_ip=left(a,patindex('%:%',a)-1)

from #tb a inner join (

select hostname,a=substring(a,patindex('ping statistics for %:%',a)+20,20) from #ip

where a like 'ping statistics for %:%') b on a.hostname=b.hostname

lb_show:

select id,資料庫名=dbname,客戶機名=hostname,使用者名稱=loginname

,網絡卡實體地址=net_address,ip位址=net_ip,應用程式名稱=prog_name from #tb

go

獲取連線SQL伺服器的資訊

獲取連線sql伺服器的資訊 所有連線本機的 操作的資料庫名,計算機名,使用者名稱,網絡卡實體地址,ip位址,程式名 鄒建 2003.11 引用請保留此資訊 呼叫示例 顯示所有本機的連線資訊 exec p getlinkinfo 顯示所有本機的連線資訊,包含ip位址 exec p getlinkinf...

儲存過程 獲取連線SQL伺服器的資訊

if exists select from dbo.sysobjects where id object id n dbo p getlinkinfo and objectproperty id,n isprocedure 1 drop procedure dbo p getlinkinfo go ...

獲取伺服器資訊

serveros environment.osversion.tostring 作業系統 cpusum environment.getenvironmentvariable number of processors cpu個數 cputype environment.getenvironmentva...