2013-05-09
認識 Integration Services 交易(transactions) - 以 SSIS 2012 為例
示範版本:SQL Server 2012
開發工具:SSDT - Visual Studio 2012
認識 Integration Services 交易(transactions) - 以 SSIS 2012 為例
封裝使用交易將工作執行的資料庫動作繫結至原子單位,這樣可以保持資料的完整性。
所有 Microsoft Integration Services 容器類型 (封裝、For 迴圈、Foreach 迴圈和時序容器,以及封裝每個工作的工作主機) 皆可設定成使用交易。
Integration Services 提供三個設定交易的選項,分別是 NotSupported、Supported 及 Required。
(1) Required 指出容器會啟動交易,除非其父容器已經將其啟動。
如果交易已經存在,則容器會聯結交易。
例如,如果未設定為支援交易的封裝包括使用 Required 選項的「時序」容器,則「時序」容器會啟動其自己的交易。
如果封裝設定為使用 Required 選項,則「時序」容器會聯結封裝交易。
(2) Supported 指出容器不啟動交易,但會聯結其父容器啟動的任何交易。
例如,如果具有四個「執行 SQL」工作的封裝啟動交易,且全部四個工作都使用 Supported 選項,則任何工作失敗時,都會回復「執行 SQL」工作執行的資料庫更新。
如果封裝未啟動交易,則四個「執行 SQL」工作不會由交易繫結,且只會回復由失敗之工作執行的資料庫更新。
(3) NotSupported 指出容器不啟動交易或聯結現有的交易。
父容器啟動的交易不會影響已設定為不支援交易的子容器。
例如,如果封裝設定為啟動交易,且封裝中的「For 迴圈」容器使用 NotSupported 選項,則「For 迴圈」中的工作一旦失敗將無法回復。
影片:
認識 Integration Services 交易(transactions) - 以 SSIS 2012 為例
設定封裝來使用交易
將封裝設定成使用交易時,您有兩個選項:
(1) 擁有封裝的單一交易。
在此情況下,封裝本身會「起始」(Initiate) 這筆交易,而封裝中的個別工作和容器會參與這個單一交易。
(2) 在封裝中擁有多個交易。
在此情況下,雖然封裝支援交易,但是封裝中的個別工作和容器實際上會起始交易。
參考資料
Integration Services 交易
http://technet.microsoft.com/zh-tw/library/ms137690.aspx
設定封裝來使用交易
http://technet.microsoft.com/zh-tw/library/ms141144.aspx
設定封裝屬性
http://technet.microsoft.com/zh-tw/library/ms137749.aspx
沒有留言:
張貼留言