SQL Server中 2005 新intoduced的回滾SQL Server中的交易方式 2005
通過SET XACT_ABORT
XACT_ABORT為ON時. T-SQL語句將自動回滾事務,當錯誤發生在報表.
通過SET XACT_ABORT
使用EMP
BEGIN TRAN
插入EmpInfo值(1)
插入EmpInfo值(1) — 本聲明將提高主鍵錯誤
插入EmpInfo值(2)
COMMIT TRAN
語句的第一行會執行沒有任何錯誤. 主鍵的錯誤,將提高在第二行. 但整個街區交易不會犯的,因為在上XACT_ABORT的.
你應該注意到,XACT_ABORT的終止當前*批*, 不完整的命令. 批次是分開的GO關鍵字. 將繼續執行下一批開始.
此功能是在SQL Server 2000, 儘管它的表現略有不同的各種錯誤.
在SQL 2000, 有XACT_ABORT的失敗自動回滾事務.
例如:
插入一個無效的列名.
插入主鍵與IDENTITY_INSERT的關.
執行SELECT使用一個不存在的UDF.
這些類型的錯誤通常是由於不良撰寫的命令, 所以他們不會出現在日常的日常運作程序,除非有人改變模式. 但我交代創作時數據庫更新腳本部署新版本的一個項目時,它們存在的可能性, 剛剛部署的情況下,不走計劃.
有許多方法來處理這些錯誤. 你的提交應該在執行DML語句的批處理. 後批 (在GO關鍵字) 你可以檢查@ @ TRANCOUNT看它是否大於零,並採取相應的行動. 一般的ROLLBACK的交易.
交易可以跨批次, 這樣你就可以在隨後的一批執行回滾.