SSIS中的记录集操作

SSIS中的记录集操作,ssis,recordset,temp-tables,Ssis,Recordset,Temp Tables,在我的SSIS作业中,我需要累积一组行,并在处理成功完成时过渡提交它们。如果这是纯SQL,我会在事务中使用临时表。在SSI中,有许多问题使其复杂化。让多个组件共享同一事务是很困难的,而让临时表在设计时不存在是一件痛苦的事情 如果我为此在SSI中使用记录集,还有其他问题。我的理解是,“执行SQL”组件在运行时会重新初始化记录集,所以我不能用它来附加一行。是否有方法创建引用内存中记录集的OLE DB连接 有更好的方法来达到这个效果吗?有更好的方法。我建议使用临时表,正如你所说,你已经尝试/考虑过了。

在我的SSIS作业中,我需要累积一组行,并在处理成功完成时过渡提交它们。如果这是纯SQL,我会在事务中使用临时表。在SSI中,有许多问题使其复杂化。让多个组件共享同一事务是很困难的,而让临时表在设计时不存在是一件痛苦的事情

如果我为此在SSI中使用记录集,还有其他问题。我的理解是,“执行SQL”组件在运行时会重新初始化记录集,所以我不能用它来附加一行。是否有方法创建引用内存中记录集的OLE DB连接


有更好的方法来达到这个效果吗?

有更好的方法。我建议使用临时表,正如你所说,你已经尝试/考虑过了。在SSI中使用临时表的关键是: 1.您需要在连接管理器上将“retain same connection”属性设置为true,否则“smart”连接管理和池将在包的中途删除您的连接(并在没有临时表的情况下恢复它)。 2.您需要使用已经创建的临时表来设计包,即使您必须将其作为常规表来创建,以便根据临时表进行设计。准备部署时,更改与之接触的组件中的表名,并将这些任务DelayValidation属性设置为False。(这将防止包失败,因为包初始启动时表不存在。)