将 sp_who2 的输出存储在表中

Hit*_*han 8 sql-server t-sql

我正在寻找这样的东西,我可以将 sp_who2 的输出存储在表中,而不必先创建表:

create table test as exec sp_who2
Run Code Online (Sandbox Code Playgroud)

小智 21

USE yourDb;

CREATE TABLE temp_sp_who2
    (
      SPID INT,
      Status VARCHAR(1000) NULL,
      Login SYSNAME NULL,
      HostName SYSNAME NULL,
      BlkBy SYSNAME NULL,
      DBName SYSNAME NULL,
      Command VARCHAR(1000) NULL,
      CPUTime INT NULL,
      DiskIO BIGINT NULL, -- int
      LastBatch VARCHAR(1000) NULL,
      ProgramName VARCHAR(1000) NULL,
      SPID2 INT
      , RequestId INT NULL --comment out for SQL 2000 databases
 
    )
 
 
INSERT  INTO temp_sp_who2
EXEC sp_who2
 
SELECT  *
FROM    temp_sp_who2
WHERE   DBName = 'yourDb'
Run Code Online (Sandbox Code Playgroud)

关联

刚刚在 SQL Server 2012 上测试过


Kin*_*hah 7

如果您运行的是 SQL Server 2005 SP1 及更高版本,最好使用Adam Machanic 的sp_whoisactive。它比 sp_who2 好得多(请参阅我链接的站点上的详细月份系列)。

Kendra(来自 Brent 的团队)有一篇关于从表中的 sp_WhoIsActive 收集数据的优秀帖子