是否可以使用 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;
整个容器包裹在一个事务中,回滚/提交无错
我想把序列容器包装在一个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;
整个容器包裹在一个事务中,回滚/提交无错