[SQL SERVER][SSIS] RetainSameConnection 屬性

[SQL SERVER][SSIS] RetainSameConnection 屬性

以前包交易都使用 時序容器 來處理,當你設定Transactionoption=required 時,也必須確認啟用MSDTC並設定(一點點小麻煩),

今天嘗試使用 RetainSameConnection來處理全部 DataFlow 交易行為,

發現真的很方便也很好用,下面簡單紀錄一下。

 

原始資料

image

 

完整ControlFlow

image

 

設定連線管理員

image

 

begin Tran 輸入

image

 

DataFlow

image

這裡會把資料新增道不同資料表,我希望只要有一個失敗,整個DataFlow交易就算失敗

在資料轉換元件,我故意轉換失敗,來看看是否可以達到這小需求。

 

Commit Tran 輸入

image

 

 

執行(失敗情況)

image

 

image

 

因為另一條路線失敗,雖然表面上感覺另一資料表資料有新增成功,

但因為還沒執行到Commit Tran,所以整個DataFlow算失敗,

下面查詢資料庫進行確認。

 

image

資料沒有增加。

 

 

執行(成功情況)

image

 

image

 

資料庫確認

image

搞定收工。

 

 

 

 

參考

OLEDb.RetainSameConnection. Transactions