是否可以使用 2 Execute SQL 任务将容器包装在 SSIS 中?

Is it possible to wrap a container in SSIS with a transaction using 2 Execute SQL tasks?

我想把序列容器包装在一个t运行saction中,这样用户就可以选择是否插入他们的数据。
然而,

BEGIN TRANSACTION T1;

在“开始 T运行saction”和

IF ? = 0
   COMMIT TRANSACTION T1
ELSE
   ROLLBACK TRANSACTION T1;

在“Rollback or Commit T运行saction”中,抛出一个错误,指出最后一个任务也没有绑定的开始语句。

是否有另一种方法可以在容器上实现 t运行saction,或者是否需要更改某些包属性才能使其工作?

P.S。该包将由 C# 形式 运行,因此如果有一种方法可以将包包装在 C# 的 t运行saction 中,该选项也可用

感谢您的帮助或建议

这是 SSIS 中内置的一个选项。您 select 序列并转到属性。在 TransactionOption 下将值设置为“required”。
不过,这要求 MSDTC 为 运行。

通过在 TransactionOption 上将所有任务设置为 Supported,并添加检查以查看是否有交易处于活动状态,就像这样

DECLARE @TranCount int;

SET @TranCount = (select COUNT(*) from sys.sysprocesses WHERE open_tran > 0);

IF @TranCount > 0
ROLLBACK TRANSACTION;

整个容器包裹在一个事务中,回滚/提交无错