以下是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® SQL Server™ 是否自動回滾當前事務。
語法
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 的設置是在執行或運行時設置,而不是在分析時設置