zoukankan      html  css  js  c++  java
  • 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   的设置是在执行或运行时设置,而不是在分析时设置

  • 相关阅读:
    sed命令:删除匹配行和替换
    使用git rebase合并多次commit
    解决flask中文乱码的问题
    PyCharm 2017: Remote debugging using remote interpreter doesn't work
    ansible小结(八)ansible-playbook简单使用
    ansible命令参数介绍
    eclipse 代码自动提示
    oracle start with connect by prior 递归查询
    Android九宫图(draw9patch)
    Android 通过按钮弹出系统菜单(通过Button显示菜单)转
  • 原文地址:https://www.cnblogs.com/lizhenlin/p/7097361.html
Copyright © 2011-2022 走看看