SSIS脚本组件存储所有行

时间:2009-04-22 13:03:52

标签: scripting ssis asynchronous components

我有一个SSIS脚本组件,它从输入中获取行。

输入中的一行是一个布尔值,用于标识行是A型还是B型。

如何让脚本将所有输入行加载到正确的行集合中。

关于如何使用行集合然后输出它们的任何指南也都很棒。

2 个答案:

答案 0 :(得分:1)

你可以使用Jamie Thomson在他的博客文章中所做的事情:

http://consultingblogs.emc.com/jamiethomson/archive/2005/09/05/SSIS-Nugget_3A00_-Multiple-outputs-from-a-synchronous-script-transform.aspx

他使用脚本组件并根据条件将输出拆分为多个输出流。他在帖子中非常简洁地解释了如何配置组件以及如何将正确的行发送到正确的输出流。希望这是你想要的。

答案 1 :(得分:0)

由于脚本组件使用VB,它将类似于

If Column(type) = True Then
  CollectionA.Add(row)
Else
  CollectionB.Add(row)
End If

但是,您可能希望使用DataTable,因为它更接近地代表您要存储的内容。

当所有行都通过组件时,有一个事件可以绑定到该事件。当该事件执行时,您可以将数据从DataTables移动到数据流中存在的一些变量中。如果您将这些变量键入为表值,我相信您可以在数据流中使用这些变量。

您最好的选择可能是将整个操作放入控制流中的单独DataFlow组件中,因为它听起来好像您可能正在更改出来的行数,您最好的选择可能是使用多个DataFlow组件