将SSIS执行结果存储到表

时间:2015-07-23 18:13:40

标签: sql-server sql-server-2008 ssis

我在SQL Server 2008中创建了一些SSIS包。我想知道我们是否有任何标准方法将所有执行结果转储到表中以跟踪包的状态,而不是将输出转换为屏幕截图。

我已在我的SSIS包中实现了Package Logging并执行了它。 ,我为SQL Server选择了SSIS日志提供程序,并选择了OLEDB连接进行配置,选择要记录的事件。但是,我不确定在执行包之后在哪里寻找。谁能告诉我哪里可以看到存储的结果?我以为它可能会自动创建一个表,看起来并非如此!

为了更清楚,我开始使用此MSDN链接Enable Package Logging in SQL Server Data Tools

2 个答案:

答案 0 :(得分:0)

这不是一种“标准”方法 - 但效果很好,并且易于实施。

在包的开头,有一个执行sql任务'Write ETL Log',它将时间戳,包描述和详细信息添加到ETL Log表中:

INSERT INTO [Staging].[dbo].[ETL_Log] VALUES ('2015-07-28 16:41:32','ETL Process ABC','Started...')

在包的末尾,我有另一个执行sql任务,它执行以下操作:

INSERT INTO [Staging].[dbo].[ETL_Log] VALUES ('2015-07-28 16:47:40','ETL Process ABC','Complete. A:\floppitout.bas has been successfully loaded')

这样可以轻松地将表所需的相关详细信息记录到表中,并且信息最少。您可以编写存储过程来检查此表以查找已启动但未完成的作业,或者您希望运行但尚未运行的作业。祝你好运。

答案 1 :(得分:0)

它在相关数据库的系统表中创建一个名为'sysssislog'的表。

如果您正在使用SSMS,请展开数据库,展开表格,展开系统表,您将看到表dbo.sysssislog。