将SSIS事务限制为单个连接管理器

时间:2013-08-15 21:07:19

标签: sql-server transactions ssis distributed-transactions

我有一个相当复杂的ETL,有两个连接管理器:

  • InputDatabase
  • OutputDatabase

InputDatabase是只读的,ETL上带有IsolationLevel=ReadUncommited。我目前正在我的容器上使用TransactionOption=Required来启用失败回滚。

有没有办法只在OutputDatabase上使用事务,因为它们在InputDatabase上不是必需的?当前的实现工作时,它需要在不需要它的服务器上设置分布式事务协调器,以及打开防火墙和端口。

1 个答案:

答案 0 :(得分:3)

这似乎超出了TransactionOption支持的意图。

在单个数据源上使用事务:

  1. 将数据源设置为RetainSameConnection=True
  2. 将执行SQL任务添加到BEGIN TRANSACTIONCOMMIT TRANSACTIONROLLBACK TRANSACTION
  3. 有关详细信息,请参阅以下答案: TransactionOption in SSIS