多个事务

包可以在一个 Integration Services 包中包含不相关的事务。 无论任何时候,位于嵌套容器层次结构中间的容器都不支持事务,位于层次结构中其他位置的容器如果配置为支持事务,则它们将启动单独的事务。 事务按照从嵌套容器层次结构中最里面的任务到包这个顺序来提交或回滚。 但是,在内部事务提交后,如果外部事务中止,已提交的事务不会回滚。

多个事务的说明

例如,某个包包含一个序列容器,该序列容器中又存储有两个 Foreach 循环容器,而后面这两个容器中又分别包含两个执行 SQL 任务。 序列容器支持事务,而 Foreach 循环容器则不支持事务,但执行 SQL 任务支持。 在此示例中,每个执行 SQL 任务都将启动自己的事务,如果序列任务上的事务被中止,则执行 SQL 任务将不会回滚。

序列容器、Foreach 循环容器和执行 SQL 任务的 TransactionOption 属性按照如下方式进行设置:

  • 序列容器的 TransactionOption 属性设置为 Required

  • Foreach 循环容器的 TransactionOption 属性设置为 NotSupported

  • 执行 SQL 任务的 TransactionOption 属性设置为 Required

下面的关系图显示了包中的五个不相关的事务。 一个事务是由序列容器启动的,其余四个事务是由执行 SQL 任务启动的。

多个事务的实现

相关任务

将包配置为使用事务

相关内容

Integration Services 图标(小) 使 Integration Services 保持最新

若要从 Microsoft 获得最新的下载内容、文章、示例和视频,以及从社区获得所选解决方案,请访问 MSDN 上的 Integration Services 页:


若要获得有关这些更新的自动通知,请订阅该页上提供的 RSS 源。