zoukankan      html  css  js  c++  java
  • 事务中SET XACT_ABORT各种用法

    SET XACT_ABORT

        一提到事务,也许,你的第一反应就是,要么全部执行,要么全部不执行,然而事实.............可以不是这样滴!

    测试代码

    CREATE TABLE TEST(
    ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
    VAL VARCHAR(2)
    )

    1.事务终止并全部回滚

    SET XACT_ABORT ON
    BEGIN TRAN
       INSERT INTO TEST VALUES('11')
       INSERT INTO TEST VALUES('22')
       INSERT INTO TEST VALUES('3333') --超出字符长度
       INSERT INTO TEST VALUES('44')
    COMMIT TRAN
    
    SELECT * FROM TEST
    --结果:没有值

    2.只回滚错误行,语句还继续执行

    SET XACT_ABORT OFF
    BEGIN TRAN
       INSERT INTO TEST VALUES('11')
       INSERT INTO TEST VALUES('22')
       INSERT INTO TEST VALUES('3333') --超出字符长度
       INSERT INTO TEST VALUES('44')
    COMMIT TRAN
    
    SELECT * FROM TEST
    --结果:
    /*
    ID    VAL
    4    11
    5    22
    7    44
    */

    3.事务在错误行终止,错误行回滚,错误行之前的不回滚

     每个语句作为一个事务,事务在错误行终止,错误行回滚,错误行之前的不回滚.(BENGIN END)

    DELETE FROM TEST
    SET XACT_ABORT ON
    BEGIN 
       INSERT INTO TEST VALUES('11')
       INSERT INTO TEST VALUES('22')
       INSERT INTO TEST VALUES('3333') --超出字符长度
       INSERT INTO TEST VALUES('44')
    END
    
    SELECT * FROM TEST
    --结果:
    /*
    ID    VAL
    8    11
    9    22
    */
  • 相关阅读:
    查询
    常用代码块模板,get,load区别,session.get(,)参数解释,session方法总结
    hibernate.cfg.xml配置文件
    request,session,application,三者比较
    maven 环境搭建
    selenium环境搭建
    makedown使用语法
    selenium浏览器操作
    selenium元素操作
    Selenium 元素定位
  • 原文地址:https://www.cnblogs.com/mc67/p/4823514.html
Copyright © 2011-2022 走看看