我在SSIS中有一个包含多个任务的包。我正在加载文件,如果最后的文件系统任务失败,我希望能够回滚事务。我的包看起来就像那样。 我喜欢能够回滚SSIS脚本已完成的所有操作。为此,我需要SSIS脚本来登记由BEGIN_TRANSACTION Sql任务创建的事务。我该怎么做?SSIS脚本任务在当前事务中登记
在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:真
感谢您的想法
文森特
嗨,感谢您的回答我不使用数据流的原因是该软件包用于不同的表结构不同,数据流不能有列的通用元数据 –
您可以提供更多详细信息或示例你的意思是不同的表格有不同的结构?你想要解决什么样的用例? – VKarthik