首页 > 解决方案 > 使用时间戳将 sp_who 的结果多次插入表中

问题描述

这个问题SQL Server: Filter output of sp_who2 有一种方法可以将 sp_who2 的结果插入到表中。

除了插入的时间戳之外,如何将结果插入表中。

drop table if exists #sp_who2; 
CREATE TABLE #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 INT NULL,  
   LastBatch VARCHAR(1000) NULL,  
   ProgramName VARCHAR(1000) NULL,  
   SPID2 INT,
   te4xt varchar(250)
) 
GO

INSERT INTO #sp_who2
EXEC sp_who2
GO

标签: sql-servertsqldatetimestored-proceduressql-insert

解决方案


您可以将默认为插入日期的日期时间列添加到表中。这需要枚举插入的目标列:

CREATE TABLE #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 INT NULL,  
   LastBatch VARCHAR(1000) NULL,  
   ProgramName VARCHAR(1000) NULL,  
   SPID2 INT,
   te4xt varchar(250),
   dt_created DATETIME2(3) DEFAULT (SYSDATETIME())
);

-- enumerate all columns but the new one here
INSERT INTO #sp_who2 (SPID, Status, ..., te4txt)
EXEC sp_who2

推荐阅读