SSIS:我可以在使用foreach语句循环访问时编辑我的记录集吗?

问题描述:

我正在使用SSIS进行一系列复杂的数据导出,并且遇到了障碍。我已经用记录集填充了一个包变量。我想使用foreach循环遍历记录集中的每一行。我想根据我在脚本任务中完成的一些计算来更新每行中的一列。SSIS:我可以在使用foreach语句循环访问时编辑我的记录集吗?

这可能吗?我知道在C#中foreach集合是不可变的,但我不知道SSIS是否以相同的方式工作。

不幸的是,我还没有找到任何使用for循环结构的好例子,这可能是一个潜在的解决方案。

将数据放入记录集时,它将存储在对象变量中。您可以使用Foreach循环容器 - 并循环对象变量。然后,您可以创建一些变量来保存行的每一列 - 然后您可以逐行执行任何您喜欢的操作,无论是数据流任务,sql语句,脚本任务(c#)还是其他任何操作。

请参阅http://www.sqlis.com/post/Shredding-a-Recordset.aspx了解如何做到这一点,并为每一行发送电子邮件。

+0

我可以得到这一点,但想要更新原始记录集中的数据,而不仅仅是编辑列。仍在测试以查看是否可以在foreach循环中修改原始记录集。 – Slider345 2011-05-03 17:27:37

+0

请问我这样做的理由是什么,因为记录集是一个内存中的目的地,并不存储在任何地方。如果您打算将它存储在某个地方,只需在您存储的任何地方进行计算。 – cairnz 2011-05-03 17:29:35

+0

这是一个很好的观点。通过将记录存储在内存中,然后将其保存到目的地,我正在复制工作。谢谢您的帮助! – Slider345 2011-05-03 17:38:50