SSIS序列容器报错回滚

时间:2021-12-29 16:36:01
1.是不是把组建放到容器后,就拥有事务了?

当 TransactionOption=Required ,就一定加入到一个事务中.

当 TransactionOption=Supported,就看父容器的TransactionOption属性了.如果父容器的TransactionOption属性为Required,那么就会加入到父容器的事务中.反之,就是没有事务.

当 TransactionOption=NotSupported,不受父容器的事务影响.

2.容器中的一个组建出错,整个容器的的组建所做的事都会回滚?

有几种情况会RollBack:

A.当父容器TransactionOption=Required,子容器不为NotSupported,当前的子容器发生出错时,对
父容器就会回滚.

B.当错误数量达到1也会回滚.




====================================


所有 Microsoft SQL Server 2005 Integration Services (SSIS) 容器类型(包、For 循环、Foreach 循环和序列容器以及封装每个任务的任务宿主)都可以配置为使用事务。Integration Services 提供了三个用于配置事务的选项:NotSupported、Supported 和 Required。
Required 指示该容器启动一个事务,除非已经存在由其父容器启动的事务。如果事务已经存在,容器将联接该事务。例如,如果没有配置为支持事务的包包括一个使用 Required 选项的序列容器,则该序列容器会启动其自己的事务。如果包已经配置为使用 Required 选项,则序列容器将联接包事务。
Supported 指示容器不启动事务,但将联接由其父容器启动的任何事务。例如,如果具有四个执行 SQL 任务的包启动了一个事务,而且所有这四个任务都使用 Supported 选项,则在其中任何一个任务失败时都会回滚执行 SQL 任务所执行的数据库更新。如果包没有启动事务,则四个执行 SQL 任务将不绑定到该事务,而且除了回滚失败的任务所执行的更新外,不回滚任何其他数据库更新。
NotSupported 指示容器不启动事务,也不联接现有事务。由父容器启动的事务不影响已经配置为不支持事务的子容器。例如,如果包配置为启动事务,而包中的 For 循环容器使用 NotSupported 选项,则在 For 循环中的任务失败时不回滚任何任务。 
通过设置容器的 TransactionOption 属性,您可以配置事务。可以使用 Business Intelligence Development Studio 中的“属性”窗口设置此属性,也可以以编程方式设置此属性。