zoukankan      html  css  js  c++  java
  • 一篇MSSQL事务的测试文章

    常用存储过程事务的基本结构

    参考了该文章

    ---开启事务
    begin tran
    --错误扑捉机制,看好啦,这里也有的。并且可以嵌套。
    begin try  
       --这里面写执行语句
       select * from dbo.i_UserWorkType
    end try
    begin catch
       if(@@trancount>0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务
          rollback tran  ---由于出错,这里回滚到开始,第一条语句也没有插入成功。
    end catch
    if(@@trancount>0)
    commit tran  --提交事务
    
    
    

    测试

    在此做一个测试,分别进行增删改,看能否正常回滚
    未做执行前,进行的查询结果
    Image

    准备执行的语句 :

    ---开启事务
    begin tran
    --错误扑捉机制,看好啦,这里也有的。并且可以嵌套。
    begin try  
       ----------------------
       --这三条都是正确的语句
       ----------------------
       --增
       INSERT INTO dbo.i_UserWorkType(UserNo,Calendar,WorkType,UserName,WorkTime,ChangeTime)
       VALUES('0309110122','2017-12-22','B','杨沫','8:30~17:30',GETDATE())
       
       --删除UserNo为0309110119和WorkType为B的这条数据
       DELETE dbo.i_UserWorkType
       WHERE UserNo='0309110119' AND WorkType='B'
       
       --更改数据为“李某”为“李某某”
       UPDATE dbo.i_UserWorkType
       SET UserName='李某某'
       WHERE UserName='李某'
       
       ---------------------
       --这一条是错误的语句
       ---------------------
       INSERT INTO dbo.i_UserWorkType(ChangeTime)
       VALUES('不是时间格式')
       
    end try
    begin catch
       if(@@trancount>0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务
          rollback tran  ---由于出错,这里回滚到开始,第一条语句也没有插入成功。
    end catch
    if(@@trancount>0)
    commit tran  --提交事务
    
    
    
    select * from dbo.i_UserWorkType
    

    执行后的结果为:

    image
    与未执行前结果一样
    那我们把事务去掉后,只执行Try里的语句结果会怎样呢

    结果:

    image
    image

    成功地增加了一条叫“杨沫”的数据
    成功地删除了UserNo为“0309110119”和WorkType为“B”的数据
    成功地更改了“李某”的数据,改成了“李某某”

    结论:

    这事务是有效的,并且所做的增删改都能进行回滚

  • 相关阅读:
    Grunt VS Gulp
    Gulp开发教程(翻译)
    JavaScript的ajax使用
    移动端交互手势详解及实现
    JavaScript获取页面宽度高度
    JavaScript中的this(你不知道的JavaScript)
    前端Web开发MVC模式-入门示例
    RequireJS实例分析
    JavaScript 模块化历程
    LABjs、RequireJS、SeaJS 哪个最好用?为什么?- 玉伯的回答
  • 原文地址:https://www.cnblogs.com/peijia/p/8473745.html
Copyright © 2011-2022 走看看