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

  • 相关阅读:
    .net从后台返回js的提示框
    使用IntelliTrace的独立收集器帮助测试应用程序
    NuGet笔记
    使用.dmp+vs分析异常
    windbg笔记
    C# 删除文件、文件到到回收站及异常判断
    .Net利用反射调用DLL时,被调用DLL引用其它库问题
    C#中设置窗口圆角样式
    C# 中引用IHTMLDocument2
    c# 单实例运行
  • 原文地址:https://www.cnblogs.com/lizhenlin/p/7097361.html
Copyright © 2011-2022 走看看