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   的设置是在执行或运行时设置,而不是在分析时设置

posted @ 2017-06-30 09:39  白色的回忆  阅读(14452)  评论(0编辑  收藏  举报