对于单个SSIS任务,我尝试将其事务设置为本地。 为了简化事情,我试图这样做:
在该任务中我从目标表中删除了一些行并发出了ROLLBACK:
DELETE FROM SOME_TABLE WHERE SOME_COLUMN = 'ABCD';
ROLLBACK;
Test Connection
TransactionOption
属性更改为Required
RetainSameConnection
属性更改为True
据我了解,该任务应该在不使用DTC的情况下启动本地事务。但是,这是我运行包时的输出:
SSIS包" Package1.dtsx"开始。
信息:ROLLBACK的0x4001100A:启动分布式事务 对于这个容器。
错误:连接管理器Package1上的0xC001402C " xxx @ yyy":SSIS运行时失败了 在具有错误的分布式事务中登记OLE DB连接 0x8004D01B"事务管理器不可用。"。
错误:连接管理器Package1上的0xC0202009 " xxx @ yyy":SSIS错误代码DTS_E_OLEDBERROR。 发生OLE DB错误。错误代码:0x8004D01B。
错误:ROLLBACK上的0xC00291EC,执行SQL任务:无法获取 连接" xxx @ yyy"。连接可能不是 正确配置或您可能没有正确的权限 连接。
任务失败:ROLLBACK
信息:ROLLBACK的0x4001100C:中止当前分配的电流 事务。
警告:Package1上的0x80019002:SSIS警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功了,但是 引发的错误数量(1)达到允许的最大值(1); 导致失败。当错误数量达到时,就会发生这种情况 MaximumErrorCount中指定的数字。改变 MaximumErrorCount或修复错误。 SSIS包" Package1.dtsx" 完成:失败。
有谁知道这里发生了什么?