Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS用于错误处理的本地嵌套事务_Sql Server_Transactions_Ssis_Nested_Msdtc - Fatal编程技术网

Sql server SSIS用于错误处理的本地嵌套事务

Sql server SSIS用于错误处理的本地嵌套事务,sql-server,transactions,ssis,nested,msdtc,Sql Server,Transactions,Ssis,Nested,Msdtc,我们计划在SSI中不使用MSDTC进行事务管理,而是希望使用Begin transaction和commit transaction使用本地trsnactions。从设计角度来看,除了一个问题外,它似乎还可以。当SSIS包在任何任务中失败时,我们有一个错误事件处理程序,它将记录插入错误表。因此,现在发生的情况是,当SSIS回滚事务时,它也在回滚错误处理例程。但我不确定如何控制这种粒度,因为当我在包执行开始时启动事务时,嵌套事务将无法工作 有什么想法吗?下面是一个示例,说明如何将TRY-CATCH

我们计划在SSI中不使用MSDTC进行事务管理,而是希望使用Begin transaction和commit transaction使用本地trsnactions。从设计角度来看,除了一个问题外,它似乎还可以。当SSIS包在任何任务中失败时,我们有一个错误事件处理程序,它将记录插入错误表。因此,现在发生的情况是,当SSIS回滚事务时,它也在回滚错误处理例程。但我不确定如何控制这种粒度,因为当我在包执行开始时启动事务时,嵌套事务将无法工作

有什么想法吗?

下面是一个示例,说明如何将TRY-CATCH块与支持错误处理的事务提交一起使用


关于您对嵌套事务的评论,它们实际上并不存在于SQL Server中。请参见此

我切换到MSDTC来处理SSIS中的这些事务和错误处理。这种新方法非常干净,只需将SSI中的相关流标记为txn required或not即可。我将错误处理例程标记为“txn不受支持”,因为我不希望它在出现错误时回滚。现在一切看起来都很好,除了我们案例中的基础架构开销,因为我们将解决方案捆绑到各个客户端工作站


非常感谢

是的,他们不支持,我在发布之前阅读了这篇MSDN文章(),我想知道其他人如何处理SSI中的本地事务错误例程。我们需要将SSIS包中的错误插入到数据库表中。非常感谢