我在 SSIS 中有一个包含多个任务的包。我正在加载文件,如果最后的文件系统任务失败,我希望能够回滚事务。我的包看起来像那样。 我希望能够回滚 SSIS 脚本已完成的所有操作。为此,我需要 SSIS 脚本加入由 BEGIN_TRANSACTION Sql 任务创建的事务。我该怎么做?
在 ssis 收集交易我做:
object rawConnection = Dts.Connections["destination_ado"].AcquireConnection(Dts.Transaction);
myADONETConnection = (SqlConnection)rawConnection;
然后我做一个 BulkCopy:
using (SqlBulkCopy sbc = new SqlBulkCopy(myADONETConnection))
{
sbc.DestinationTableName = "[" + SCHEMA_DESTINATION + "].[" + TABLE_DESTINATION + "]";
// sbc.DestinationTableName = "test_load";
// Number of records to be processed in one go
sbc.BatchSize = 10000;
// Finally write to server
sbc.WriteToServer(destination);
}
myADONETConnection.Close();
如何告诉 SqlBulkCopy 使用现有事务?在 SSIS 的连接选项中,我使用 RetainSameConnection:true
谢谢你的所有想法
文森特