2008年4月14日 星期一

如何取得MSSQL使用者及處理序 sp_who

轉載來源:MS SQL 線上說明

sp_who

提供關於目前的 MicrosoftR SQL Server? 使用者及處理序 (Process) 的資訊。傳回的資訊可透過篩選僅傳回非閒置的處理序。
語法
sp_who [[@login_name =] 'login']
引數
[@login_name =] 'login'


是在 SQL Server 上的使用者登入名稱。login 為 sysname,其預設值為 NULL。如果沒有指定名稱,則程序會報告 SQL Server 上所有現用使用者。login 也可以是特定處理序識別碼 (SPID)。若要傳回所有現用中處理序資訊,請指定 ACTIVE。ACTIVE 會從處理序報表中,排除那些等待使用者下一個指令的處理序。
傳回碼值
0 (成功) 或 1 (失敗)
範例
A. 列出所有目前的處理序
此範例使用沒有參數的 sp_who 來報告所有的目前使用者。
USE master
EXEC sp_who
以下為結果集:
spid ecid status loginame hostname blk dbname cmd
---- ---- ------ ------------ -------- --- ------ -----
1 0 background sa 0 pubs LAZY WRITER
2 0 sleeping sa 0 pubs LOG WRITER
3 0 background sa 0 master SIGNAL HANDLER
4 0 background sa 0 pubs RA MANAGER
5 0 background sa 0 master TASK MANAGER
6 0 sleeping sa 0 pubs CHECKPOINT SLEEP
7 0 background sa 0 master TASK MANAGER
8 0 background sa 0 master TASK MANAGER
9 0 background sa 0 master TASK MANAGER
10 0 background sa 0 master TASK MANAGER
11 0 background sa 0 master TASK MANAGER
51 0 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 2 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
51 1 runnable DOMAIN\loginX serverX 0 Nwind BACKUP DATABASE
52 0 sleeping DOMAIN\loginX serverX 0 master AWAITING COMMAND
53 0 runnable DOMAIN\loginX serverX 0 pubs SELECT
(16 row(s) affected)
B. 列出特定使用者處理序
此範例顯示如何由登入名稱檢視關於單一目前的使用者資訊。
USE master
EXEC sp_who 'janetl'
C. 顯示所有現用處理序
USE master
EXEC sp_who 'active'
D. 以處理序識別碼顯示特定的處理序
USE master
EXEC sp_who '10' --specifies the process_id

沒有留言: