如何在SSIS数据流任务中跟踪成功处理或失败的行的状态?

时间:2011-07-19 10:55:30

标签: ssis audit

我有一个非常简单的数据流任务,从FF读取数据并将数据插入表中。同时我想写一个Audit表,插入了多少行,创建了日期......

我怎样才能轻松完成?

2 个答案:

答案 0 :(得分:9)

如果您只对成功处理的行数或遇到错误的行数感兴趣,那么您可以使用内置的SSIS logging功能。请检查下面提到的步骤。我希望这个例子能给你一个想法。我在日志表中只显示了两列,但还有其他有用的字段,如starttime,endtime等。该示例是在 SSIS 2008 R2

中创建的
  1. 点击SSIS package

  2. 在菜单上,选择SSIS --> Logging...

  3. 在“配置 SSIS日志:”对话框中,选择提供程序类型,然后单击“添加”。我为此示例选择了SQL Server。选中“名称”复选框,并在“配置”列下提供数据源。这里SQLServer是连接管理器的名称。 SSIS 2008SSIS 2008 R2会在您选择的数据库中创建名为 dbo.sysssislog 的表格和存储过程 dbo.sp_ssis_addlogentry 。请参阅下面的屏幕截图#1 SSIS 2005中的表格名称为 dbo.sysdtslog90 ,存储过程名称为 dbo.sp_dts_addlogentry

  4. 如果您需要处理的行,请选中OnInformation复选框。在示例中,包已成功执行,因此在OnInformation下找到了日志记录。您可能需要根据您的要求微调此事件选择。请参阅下面的屏幕截图#2

  5. 以下是数据流任务中的示例包执行。请参阅下面的屏幕截图#3

  6. 以下是日志表dbo.sysssislog的示例输出。我只显示了列 id 消息。表中还有许多其他列。在查询中,我仅针对名为“ Package1 ”的包和事件“ OnInformation ”过滤输出。您可以注意到具有ID 7,14和15的记录包含已处理的行。请参阅下面的屏幕截图#4

  7. 希望有所帮助。

    屏幕截图#1

    Logging

    屏幕截图#2

    Events

    屏幕截图#3

    Execution

    屏幕截图#4

    Data

答案 1 :(得分:0)

您可以多播平面文件,或在您插入数据的表上使用触发器。如果是正在审核的表格,那么无论何时插入任何数据,您都可能想知道。