1)使用以下查詢語句:
select * from sysprocesses where dbid in (select dbid from sysdatabases where name='MyDatabase')
由上面的語句可以看出系統表獲取一些連接和活動信息,主要介紹下面的兩個系統表:
(1)sprocesses
sysprocesses 表中保存關於運行在 Microsoft? SQL Server? 上的進程的信息。這些進程可以是客戶端進程或系統進程。sysprocesses 只存儲在 master 數據庫中。
(2)Sysperfinfo
包括一個 Microsoft? SQL Server? 表示法的內部性能計數器,可通過 Windows NT 性能監視器顯示.
2)
獲取SQL Server的當前連接數:使用如下SQL:
SELECT COUNT(*) AS CONNECTIONS FROM master..sysprocesses
3)
還有一種方案是利用如下SQL:
select connectnum=count(distinct net_address)-1 from master..sysprocesses

理由是net_address是訪問者機器的網卡值,這個總該是唯一的吧.但是看起來得到的是所有時間內的連接數.
4)通過系統過程來查詢:
SP_WHO 'loginName'

loginName 是當然登陸Sql的用戶名,一般程序里面都會使用一個username來登陸SQL這樣通過這個用戶名就能查看到此用戶名登陸之后占用的連接了。
如果不寫loginName,那么返回的就是所有的sql server數據庫連接。