• 相关软件
    >sp_who 创建者:webmaster 更新时间:2006-02-16 15:51

    提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。


                                 
    语法


    sp_who [[@login_name =] 'login']



    参数


    [@login_name =] 'login'



    是 SQL Server 上的用户登录名。login 的数据类型为 sysname,默认值是 NULL。如果没有指定名称,过程将报告全部活动的 SQL Server 用户。login 也可以是特定进程标识号码 (SPID)。若要返回有关活动进程的信息,请指定 ACTIVEACTIVE 从报告中排除等待用户下一个命令的进程。



    返回代码值


    0(成功)或 1(失败)



    结果集


    sp_who 返回包含以下信息的结果集。


























































    数据类型描述
    spidsmallint系统进程 ID。
    ecidsmallint与指定 SPID 相关联的给定线程的执行上下文 ID。

    ECID = {0, 1, 2, 3, ...n},其中 0 始终表示主或父线程,并且 {1, 2, 3, ...n} 表示子线程。


    statusnchar(30)进程状态。
    loginamenchar(128)与特定进程相关联的登录名。
    hostnamenchar(128)每个进程的主机或计算机名。
    blkchar(5)如果存在阻塞进程,则是该阻塞进程的系统进程 ID。否则该列为零。

    当与给定的 spid 相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务返回 '-2'。


    dbnamenchar(128)进程使用的数据库。
    cmdnchar(16)为此进程执行的 SQL Server 命令(Transact-SQL 语句、SQL Server 内部引擎处理等)。



    sp_who 结果集将根据 spid 值按升序排序。如果是并行处理,则会为特定的 spid 创建子线程。主线程表示为 spid =xxx,并且 ecid =0。其余的子线程同样也是 spid = xxx,但 ecid > 0。这样,将会为该 spid 编号返回多行 — 它们在整个列表中放置该 spid 的位置组合在一起。子线程将随机排列,但父线程除外 (ecid = 0);在该 spid 中,父线程被首先列出。



    注释


    阻塞进程(可能含有排它锁)是控制其它进程所需要的资源的进程。



    在 SQL Server 2000 中,所有孤立 DTC 事务的 SPID 都被赋予值 '-2'。孤立 DTC 事务就是不与任何 SPID 相关联的分布式事务。这样,当某一孤立事务阻塞其它进程时,可由其特殊的 '-2' SPID 值来识别该孤立分布式事务。有关更多信息,请参见 KILL



    SQL Server 2000 保留从 1 到 50 的 SPID 值以便内部使用,而 51 或更大的 SPID 值则代表用户会话。



    权限


    执行权限默认授予 public 角色。



    示例


    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. 通过进程 ID 显示特定进程


    USE master
    EXEC sp_who '10' --specifies the process_id
    相关文章
    本页查看次数: