2010-06-03 5 views

Répondre

1

De here (mais nécessite des requêtes ad hoc distribuées a permis)

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 

Ou De here (Mais vous pourriez avoir besoin d'ajuster les colonnes en fonction de la version de SQL Server vous êtes sur)

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 

en fonction de la version de SQL Server, vous êtes sur vous pourriez être mieux d'utiliser la Vues de gestion dynamique bien.

1

Vous devez insérer les résultats dans une table, une table temporaire ou une variable de table.

CREATE TABLE #sp_who2 (etc...) 

INSERT INTO #sp_who2 EXECUTE sp_who2 

SELECT * FROM #sp_who2 WHERE whatever... 

Une autre astuce est using OPENROWSET

3

Utilisez une requête de réalimentation comme celui-ci

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 

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

sur SQL Server 2005 et jusqu'à l'utilisation sys.dm_exec_sessions et sys.dm_exec_requests

Questions connexes