我在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