SQL事務回滾 寫法(轉)


以下是SQL 回滾的語句:
方案一:
SET   XACT_ABORT   ON--如果產生錯誤自動回滾
GO
BEGIN   TRAN
INSERT   INTO   A   VALUES   (4)
INSERT   INTO   B   VALUES   (5)
COMMIT   TRAN
也 可以使用_ConnectionPtr 對象的方法: BeginTrans、CommitTrans、RollbackTrans,使用該系列函數判斷 並回滾。一旦調用了 BeginTrans 方法, 在調用 CommitTrans 或 RollbackTrans 結束事務之前, 數據庫將不再立 即提交所作的任何更改。
方案二
BEGIN TRANSACTION
INSERT INTO A   values  (4)   ----- 該表含有觸發器,UPDATE其他表
IF @@error <> 0  --發生錯誤
   BEGIN
     ROLLBACK TRANSACTION
         
   END
ELSE
   BEGIN
     COMMIT TRANSACTION
       
   END

 

 

 

SET   XACT_ABORT 
指定當   Transact-SQL   語句產生運行時錯誤時,Microsoft&reg;   SQL   Server&#8482;   是否自動回滾當前事務。 

語法 
SET   XACT_ABORT   {   ON   |   OFF   } 

注釋 
當   SET   XACT_ABORT   為   ON   時,如果   Transact-SQL   語句產生運行時錯誤,整個事務將終止並回滾。為   OFF   時,只回滾產生錯誤的   Transact-SQL   語句,而事務將繼續進行處理。編譯錯誤(如語法錯誤)不受   SET   XACT_ABORT   的影響。 

對於大多數   OLE   DB   提供程序(包括   SQL   Server),隱性或顯式事務中的數據修改語句必須將   XACT_ABORT   設置為   ON。唯一不需要該選項的情況是提供程序支持嵌套事務時。有關更多信息,請參見分布式查詢和分布式事務。   

SET   XACT_ABORT   的設置是在執行或運行時設置,而不是在分析時設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM