Integration Services 事务

包使用事务将任务执行的数据库操作绑定到原子单元中,这样做可以维护数据的完整性。 所有 Microsoft Integration Services 容器类型(包、For 循环、Foreach 循环和序列容器以及封装每个任务的任务宿主)都可以配置为使用事务。 Integration Services 提供了三个用于配置事务的选项: NotSupportedSupportedRequired

  • Required 指示该容器启动一个事务,除非已经存在由其父容器启动的事务。 如果事务已经存在,容器将联接该事务。 例如,如果没有配置为支持事务的包包括一个使用 Required 选项的序列容器,则该序列容器会启动其自己的事务。 如果包已经配置为使用 Required 选项,则序列容器将联接包事务。

  • Supported 指示容器不启动事务,但将联接由其父容器启动的任何事务。 例如,如果具有四个执行 SQL 任务的包启动了一个事务,而且所有这四个任务都使用 Supported 选项,则在其中任何一个任务失败时都会回滚执行 SQL 任务所执行的数据库更新。 如果包没有启动事务,则四个执行 SQL 任务将不绑定到该事务,而且除了回滚失败的任务所执行的更新外,不回滚任何其他数据库更新。

  • NotSupported 指示容器不启动事务,也不联接现有事务。 由父容器启动的事务不影响已经配置为不支持事务的子容器。 例如,如果包配置为启动事务,而包中的 For 循环容器使用 NotSupported 选项,则在 For 循环中的任务失败时不回滚任何任务。

通过设置容器的 TransactionOption 属性,你可以配置事务。 您可以使用 中的 “属性” SQL Server Data Tools (SSDT)窗口设置此属性,也可以通过编程方式设置此属性。

注意

TransactionOption 属性影响是否应用由容器请求的 IsolationLevel 属性的值。 有关详细信息,请参阅设置属性主题中的属性说明IsolationLevel

将包配置为使用事务

外部资源

另请参阅

继承的事务
多个事务