使用脚本任务记录传输的行数,而不使用SSIS日志记录

时间:2012-10-22 16:08:23

标签: c# vb.net ssis

我在序列容器中有超过40个独立的数据流任务。

有没有办法在序列容器内的每个数据流任务中记录传输到目标的行数?#/ p>

我试过这个方法:

  1. 使用rowcount任务将rowcount值存储到变量。
  2. 执行目标表任务。
  3. 执行脚本任务,在数据流任务之后将rowcount变量写入平面文件。
  4. 此方法有效,但我必须继续为该容器内的每个数据流任务添加脚本任务。

    有没有办法让这个脚本在每个数据流任务完成后自动执行,写入每个数据流任务传输的行数,自定义文本说“xyz数据流任务转移xxxx行”?

3 个答案:

答案 0 :(得分:1)

如果您不想一次又一次地添加脚本任务,我建议您创建一个自定义数据流组件。

这将是一次性工作,但它可以在您可能拥有的各种SSIS项目中一次又一次地重复使用。

答案 1 :(得分:1)

每个数据流都需要一个主包,一个“包处理程序包”和一个子包。

首先,在您的主包中,与数据流一样多次调用“包处理程序包”。对于每个,设置将具有包文件路径的范围变量。

在“包处理程序包”中,调用表示数据流的子包(使用包含文件路径的父包变量),并且在执行包任务成功时,调用将写下变量的脚本保存文件(或表中或任何您想要的任何位置)的行数。

在每个子包中,只需向包中添加行计数转换,并将值写入父包变量。

所以包的顺序如下:

               MasterPackage.dtsx
                 |             |
                 |             |
 PackageHandler.dtsx         PackageHandler.dtsx
        |                           |
        |                           |
 ChildPackage_1.dtsx         ChildPackage_2.dtsx

注意:您的子包中会出现错误,告诉您此包中不存在父包变量,并且没问题。它将在运行时工作。

答案 2 :(得分:0)

我们使用http://pragmaticworks.com/Products/BI-xPress - 它接受包并插入可配置的审核框架。费用有点,但评估那里有什么是好的做法。