2010-06-03 38 views

回答

1

here(啓用,但需要特設分佈式查詢)

SELECT SPID, 
     STATUS, 
     Login, 
     HostName, 
     BlkBy, 
     DBName, 
     Command, 
     CPUTime, 
     DiskIO, 
     LastBatch, 
     ProgramName 
    INTO #MyHead 
    FROM OPENROWSET('SQLOLEDB', 
    'Server=yourserverinstancehere;Trusted_Connection=Yes;Database=Master', 
           'Set FmtOnly OFF; EXEC dbo.sp_Who2') 

SELECT * FROM #MyHead 

或者從here(但是你可能需要調整取決於SQL Server的版本列你正在)

CREATE TABLE #sp_who3 
( 
    SPID INT, 
    Status VARCHAR(32) NULL, 
    Login SYSNAME NULL, 
    HostName SYSNAME NULL, 
    BlkBy SYSNAME NULL, 
    DBName SYSNAME NULL, 
    Command VARCHAR(32) NULL, 
    CPUTime INT NULL, 
    DiskIO INT NULL, 
    LastBatch VARCHAR(14) NULL, 
    ProgramName VARCHAR(32) NULL, 
    SPID2 INT 
) 

INSERT #sp_who3 EXEC sp_who2 

根據你使用的SQL Server版本,你可能會更好地使用動態管理視圖。

1

您必須將結果插入到表,臨時表或表變量中。

CREATE TABLE #sp_who2 (etc...) 

INSERT INTO #sp_who2 EXECUTE sp_who2 

SELECT * FROM #sp_who2 WHERE whatever... 

另一個竅門是using OPENROWSET

3

使用回送這樣的查詢

SELECT SPID, Status, Login, HostName, BlkBy,DBName, 
    Command, CPUTime, DiskIO, LastBatch, ProgramName 
     INTO #TempSpWho2 
     FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;', 
     'set fmtonly off exec master.dbo.sp_who2') 

    SELECT * FROM #TempSpWho2 

Store The Output Of A Stored Procedure In A Table Without Creating A Table

請參閱SQL Server 2005及以上版本使用sys.dm_exec_sessions和sys.dm_exec_requests視圖

相關問題