【发布时间】:2018-11-01 18:43:43
【问题描述】:
第一个。)
我有一个序列容器。 它有 4 个不同的执行 sql 任务和 4 个不同的 DFT,其中数据插入到不同的表中。 我想在包失败时使用或不使用 MSDTC 服务来实现事务,即每个数据都应该在任何 DFT 失败或执行 SQL 任务时回滚。 如何实施?当我尝试使用 MSDTC 服务实现时,我收到“OLEDB 连接”错误,并且没有 MSDTC 数据被插入,只有最后一个执行 Sql 任务被回滚。如何在 ssis 2017 上实现这一点?
第二)
当我尝试不使用 MSDTC 时,将 ServerConnection RetainSameConnection 的属性设置为 TRUE,并为开始事务和提交执行了另外两个执行 sql 任务。我遇到了事件处理程序的问题,即我无法将错误记录到不同的表中。尝试操作时,回滚正在工作或事件处理程序。 一旦发生错误,控件就会转到事件处理程序,然后回滚所有事情,包括事件处理程序中的任务
第三)
序列容器用于并行执行任务。因此,这 4 个任务中的特定任务失败了,只有特定任务回滚休息 SQL 任务是将数据插入表中。
提前致谢!! ;-)
【问题讨论】:
-
当我尝试使用 MSDTC 服务实现时...告诉我们你做了什么。
-
您是否从同一数据库/SQL Server 中的表中选择/插入?如果是这样,请在脚本/存储过程中完成所有操作。
-
@Jaideb:当序列容器执行时,任何内部对象都失败了!!那么序列容器本身给出“成功”标记?还是右上角的“错误”?
标签: sql-server visual-studio-2017 sql-server-data-tools ssms-2017 ssis-2017