Sql server SSIS:我可以在使用foreach语句循环记录集时编辑它吗?

Sql server SSIS:我可以在使用foreach语句循环记录集时编辑它吗?,sql-server,database,ssis,Sql Server,Database,Ssis,我正在使用SSIS进行一系列复杂的数据导出,但遇到了一个障碍。我用记录集填充了一个包变量。我想使用foreach循环遍历记录集中的每一行。我想根据我在脚本任务中所做的一些计算来更新每行中的一列 这可能吗?我知道在C#中foreach集合是不可变的,但我不知道SSIS是否以同样的方式工作 不幸的是,我还没有找到任何使用for循环构造的好例子,这可能是一个潜在的解决方案。当您将数据放入记录集中时,它存储在对象变量中。可以使用Foreach循环容器并循环对象变量。然后创建一些变量来保存行中的每一列,这

我正在使用SSIS进行一系列复杂的数据导出,但遇到了一个障碍。我用记录集填充了一个包变量。我想使用foreach循环遍历记录集中的每一行。我想根据我在脚本任务中所做的一些计算来更新每行中的一列

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


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

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


有关如何执行此操作并为每行发送电子邮件的示例,请参见。

我可以做到这一点,但我希望更新原始记录集中的数据,而不仅仅是编辑列。仍在测试是否可以在foreach循环中修改原始记录集。我想问一下这样做的原因是什么,因为记录集是内存中的目标,不会存储在任何地方。如果你想把它存储在某个地方,只需一边计算一边把它存储在任何地方。这是一个很好的观点。通过将记录存储在内存中,然后稍后将其保存到目标,我可以复制工作。谢谢你的帮助!哦,顺便说一句,我不认为你可以以任何方式改变记录集中的值,因为foreachloop会将其提取到其他变量中,而不需要访问父记录集(据我所知,也许一些c#whacker会知道是否可以做到)