将存储过程的结果插入表中并添加一个额外的列

时间:2014-06-12 14:10:20

标签: sql sql-server tsql stored-procedures

我正在尝试将存储过程中的数据插入到表中,例如

INSERT INTO FailedLogins
EXEC sp_readerrorlog 0, 1, 'Login failed'

这很好,但是,我正在使用SSIS对数百个数据库运行这个,所以我需要将@@ SERVERNAME添加到我的FailedLogins表中,以便每个记录匹配相应的服务器。

因此结果集应如下所示:

LogDate  ServerName  ProcessInfo  Text

1 个答案:

答案 0 :(得分:1)

DECLARE @readerrorlog_results TABLE (
  LogDate date,
  ProcessInfo varchar(max),
  Text varchar(max)
)

INSERT INTO @readerrorlog_results
      (LogDate,ProcessInfo,Text)
EXEC sp_readerrorlog 0, 1, 'Login failed'

INSERT INTO FailedLogins
      (LogDate,  ServerName,ProcessInfo,Text)
SELECT LogDate,@@SERVERNAME,ProcessInfo,Text FROM @readerrorlog_results