Scripting SSIS脚本组件存储所有行

Scripting SSIS脚本组件存储所有行,scripting,ssis,asynchronous,components,Scripting,Ssis,Asynchronous,Components,我有一个SSIS脚本组件,它接收来自输入的行 输入中的一行是一个布尔值,用于标识该行的类型是a还是B 如何让脚本将所有输入行加载到正确的行集合中 另外,关于如何使用行集合并输出它们的任何指南也将非常有用。因为脚本组件使用的是VB,它类似于 If Column(type) = True Then CollectionA.Add(row) Else CollectionB.Add(row) End If 但是,您可能需要研究使用DataTable,因为它更接近于您试图存储的内容 有一个事件

我有一个SSIS脚本组件,它接收来自输入的行

输入中的一行是一个布尔值,用于标识该行的类型是a还是B

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


另外,关于如何使用行集合并输出它们的任何指南也将非常有用。

因为脚本组件使用的是VB,它类似于

If Column(type) = True Then
  CollectionA.Add(row)
Else
  CollectionB.Add(row)
End If
但是,您可能需要研究使用DataTable,因为它更接近于您试图存储的内容

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


您的最佳选择可能是将整个操作放在控制流中的一个单独的数据流组件中,因为听起来您可能正在更改输出的行数,您的最佳选择可能是使用多个数据流组件。

您可以使用类似于Jamie Thomson在其博客中所做的操作:


他使用脚本组件,并根据条件将输出分成几个输出流。他在文章中非常简洁地解释了如何配置组件以及如何将适当的行发送到适当的输出流。希望这就是你想要的

我需要做的是,也许我试图以错误的方式解决问题。。。我有两张相同的桌子,一张用于通讯,一张用于通话。我想要两张,每张桌子一张。然后,浏览call表,查看每一行是否可以找到具有相同日期的comm。如果您可以将命令复制到结果中,如果您不能,则使用该调用。你不应该重复使用同一个命令。我个人只会做一个普通的连接。不是查找,而是直接连接。我假设您不希望粒度降低到时间,而只希望粒度降低到天,在这种情况下,您可以通过将两个DateTime字段转换为VarChar(10)字段(截断时间)来进行连接,并对转换后的字段进行连接。这可能会导致多对多匹配,但听起来它应该能提供您所需要的。我不想要多对多匹配,这不是问题所在。如果我能在同一天找到一个通信来替换它,我想删除这些电话。但我不应该用同一种通信来代替两个单独的电话