在進行兩台以上的SQL SERVER的資料庫insert、update或delete
為保持資料的正確性,就必須使用到BeginTransaction方法,
目的是用來確保一整個交易流程是否正常完成,否則就取消先前的動作。
語法如下:
開始交易
begin transaction
結束交易
end transaction
or
commit
取消交易
rollback
在交易中若取消交易,結果就是從開始交易之後的所有修改資料的動作(包括insert、update、delete)到rollback為止,全都會被復原到開始前的狀態。
而完成交易,結果就是確定執行交易的內容,之後就不能復原了。
然而,要使用分散式交易協調器 (MS DTC)就必須啟用DTC服務,
啟用MSDTC服務步驟如下:
Step 1: 控制台→新增或移除程式→Windows 元件精靈→Application Server→詳細資料→勾選啟用網路DTC存取
Step 2: 控制台→系統管理工具→服務→Distributed Transaction Coordinatorn→啟動服務
Step 3: 控制台→系統管理工具→元件服務→電腦→我的電腦→右鍵(內容)
Step 4: MSDTC→交易設定→安全性設定→勾選「網路DTC存取」、「允許遠端用戶端」、「允許遠端系統管理」、「允許輸入」、「允許輸出」、「不需要驗證」→確定→(自動重新啟動)即可
若有一台Server是DB、另一台是Web,兩台Server都必須安裝與設定DTC。
以上為小弟目前DTC的問題解決方法。
參考文獻:
http://www.died.tw/2009/04/msdtc.html
http://nio127.blogspot.tw/2009/01/sql-transaction.html