提供關(guān)于當(dāng)前 Microsoft® SQL Server™ 用戶和進程的信息??梢院Y選返回的信息,以便只返回那些不是空閑的進程。
sp_who [[@login_name =] 'login']
[@login_name =] 'login'
是 SQL Server 上的用戶登錄名。login 的數(shù)據(jù)類型為 sysname,默認(rèn)值是 NULL。如果沒有指定名稱,過程將報告全部活動的 SQL Server 用戶。login 也可以是特定進程標(biāo)識號碼 (SPID)。若要返回有關(guān)活動進程的信息,請指定 ACTIVE。ACTIVE 從報告中排除等待用戶下一個命令的進程。
0(成功)或 1(失?。?/P>
sp_who 返回包含以下信息的結(jié)果集。
列 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
spid | smallint | 系統(tǒng)進程 ID。 |
ecid | smallint | 與指定 SPID 相關(guān)聯(lián)的給定線程的執(zhí)行上下文 ID。 ECID = {0, 1, 2, 3, ...n},其中 0 始終表示主或父線程,并且 {1, 2, 3, ...n} 表示子線程。 |
status | nchar(30) | 進程狀態(tài)。 |
loginame | nchar(128) | 與特定進程相關(guān)聯(lián)的登錄名。 |
hostname | nchar(128) | 每個進程的主機或計算機名。 |
blk | char(5) | 如果存在阻塞進程,則是該阻塞進程的系統(tǒng)進程 ID。否則該列為零。 當(dāng)與給定的 spid 相關(guān)聯(lián)的事務(wù)受到孤立分布式事務(wù)的阻塞時,該列將對阻塞孤立事務(wù)返回 '-2'。 |
dbname | nchar(128) | 進程使用的數(shù)據(jù)庫。 |
cmd | nchar(16) | 為此進程執(zhí)行的 SQL Server 命令(Transact-SQL 語句、SQL Server 內(nèi)部引擎處理等)。 |
sp_who 結(jié)果集將根據(jù) spid 值按升序排序。如果是并行處理,則會為特定的 spid 創(chuàng)建子線程。主線程表示為 spid =xxx,并且 ecid =0。其余的子線程同樣也是 spid = xxx,但 ecid > 0。這樣,將會為該 spid 編號返回多行 它們在整個列表中放置該 spid 的位置組合在一起。子線程將隨機排列,但父線程除外 (ecid = 0);在該 spid 中,父線程被首先列出。
阻塞進程(可能含有排它鎖)是控制其它進程所需要的資源的進程。
在 SQL Server 2000 中,所有孤立 DTC 事務(wù)的 SPID 都被賦予值 '-2'。孤立 DTC 事務(wù)就是不與任何 SPID 相關(guān)聯(lián)的分布式事務(wù)。這樣,當(dāng)某一孤立事務(wù)阻塞其它進程時,可由其特殊的 '-2' SPID 值來識別該孤立分布式事務(wù)。有關(guān)更多信息,請參見 KILL。
SQL Server 2000 保留從 1 到 50 的 SPID 值以便內(nèi)部使用,而 51 或更大的 SPID 值則代表用戶會話。
執(zhí)行權(quán)限默認(rèn)授予 public 角色。
此示例使用沒有參數(shù)的 sp_who 報告所有當(dāng)前用戶。
USE master
EXEC sp_who
下面是結(jié)果集:
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 DOMAINloginX serverX 0 Nwind BACKUP DATABASE
\
51 2 runnable DOMAINloginX serverX 0 Nwind BACKUP DATABASE
\
51 1 runnable DOMAINloginX serverX 0 Nwind BACKUP DATABASE
\
52 0 sleeping DOMAINloginX serverX 0 master AWAITING COMMAND
\
53 0 runnable DOMAINloginX serverX 0 pubs SELECT
(16 row(s) affected)
此示例顯示如何通過登錄名查看有關(guān)單個當(dāng)前用戶的信息。
USE master
EXEC sp_who 'janetl'
USE master
EXEC sp_who 'active'
USE master
EXEC sp_who '10' --specifies the process_id
相關(guān)文章