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 属性的说明。

将包配置为使用事务

外部资源

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

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


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

请参阅

概念

继承的事务

多个事务