在SQL Server回滾事務 2005

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的.

1 在SQL Server評論ROLLBACK TRANSACTION 2005

  • noreply@blogger.com (托德)

    你應該注意到,XACT_ABORT的終止當前*批*, 不完整的命令. 批次是分開的GO關鍵字. 將繼續執行下一批開始.

    此功能是在SQL Server 2000, 儘管它的表現略有不同的各種錯誤.

    在SQL 2000, 有XACT_ABORT的失敗自動回滾事務.

    例如:

    插入一個無效的列名.

    插入主鍵與IDENTITY_INSERT的關.

    執行SELECT使用一個不存在的UDF.

    這些類型的錯誤通常是由於不良撰寫的命令, 所以他們不會出現在日常的日常運作程序,除非有人改變模式. 但我交代創作時數據庫更新腳本部署新版本的一個項目時,它們存在的可能性, 剛剛部署的情況下,不走計劃.

    有許多方法來處理這些錯誤. 你的提交應該在執行DML語句的批處理. 後批 (在GO關鍵字) 你可以檢查@ @ TRANCOUNT看它是否大於零,並採取相應的行動. 一般的ROLLBACK的交易.

    交易可以跨批次, 這樣你就可以在隨後的一批執行回滾.

給一個答复

你可以使用 這些 HTML標籤

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>