事务:同一个事务中的操作是一个工作单元
SSIS:SQL Server集成服务(SQL Server Integration Services)
默认支持Task组件级别的事务
https://blog.youkuaiyun.com/nginxs/article/details/77314199
单个Task组件的事务处理:
Execute SQL Task:该组件中执行TSQL脚本处于同一个事务中,一旦其中某个执行失败,回滚所有执行的TSQL脚本:
单个Execute SQL Task中执行大量TSQL脚本,易日志文件激增
分布式事务:分布式协调器DTC distributed transaction coordinator 跨连接,Task和Package事务处理
所有任务组件使用的连接管理器支持DTC,且管理器的SupportsDTCTransactions=true
引擎服务开启MS DTC(微软分布式事务服务)实现分布式事务处理,在package的task组件上设置TransactionOption
每个可执行组件Task或container包含Transactions属性组
1、IsoLationLevel事务隔离级别
2、TransactionOption事务选项,具体看上一篇
本机事务:SQL Server引擎级别的事务,通过TSQL管理单一连接的事务处理
事务处理依赖连接管理器的支持,所有任务组件使用相同的连接管理器,且RetainSameConnection=true避免频繁打开、关闭连接,所有的task组件使用同一个连接
如果为false,每个Task组件执行结束时,存在未提交事务,组件自动回滚
开启一个显式事务,必须显式提交事务,连接关闭、SSIS回滚未提交的显式事务
隐式事务,TSQL执行结束,自动提交或回滚