其中一个软件包将实现使用 SQL Server Integration Services没有MSDTC的SSIS事务。
执行SQL任务在数据流(Df_insert)之前放置了开始事务。在第一个数据流(Df_Insert)之后有几个更新步骤和索引创建步骤。有一个更新脚本,它是另一个序列容器,并且,需要成为此交易的一部分。
有没有办法只包含Df_insert和更新脚本 在交易中。
控制流程如下所示
答案 0 :(得分:1)
从SQL事务的角度来看,BEGIN TRAN和COMMIT之间的所有DML语句(即插入 - 更新 - 删除)都是此事务的一部分,而不是可推导的。您的任务 - 仅提交DFT
和update script
- 表示update
,update2
和delete
是update script
中使用的临时数据,稍后会被丢弃上。
方法 - 重新设计您的逻辑,将update
,update2
和可能delete
结果的结果移动到TEMP表中,然后再使用它。定期#temp_table会没问题,因为你必须使用 RetainSameConnection = true 进行没有MSDTC的交易。