我正在使用 SSIS 内置事务。场景如下
同一服务器上有两个数据库,我需要合并它们(插入/更新)我正在使用 SQL 合并子句来这样做。主表很少,每个表都有几个子表。合并语句首先在主表上运行,然后我有子表的 ExecuteSQL 任务。子表 ExecuteSQL 并行运行。
执行此操作时,我在并行运行的 ExecuteSQL 任务之一上获取连接失败并且任务失败。无法弄清楚是什么原因。
RetainSameConnection 设置为 false,如果我将其设置为 True,则会出现“事务上下文正在被另一个会话使用”错误。
据我了解,我不需要 RetainSameConnection = True 因为它仅在基于本地 TSQL 的事务中需要。DTC 已启用且正在工作。
并非我的包中的所有任务都失败了,这表明它通过在并行任务上以某种方式失败而成功地获得了连接。