当前位置: 首页 > news >正文

SQL事务回滚的问题及其解决的方法

Begin Transaction:开始一个事务; 
Commit Transaction:提交事务; 
Rollback Transaction:回滚事务。 

其中Commit Transaction 与Rollback Transaction 都必须有对应的Begin Transaction 才能正确被执行。 

如: 

Begin Tran 
…… 
Rollback Tran 
Commit Tran 

以上事务只执行了回滚操作。执行Commit Tran系统会返回3902错误,即@@Error=3902,COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTIONBegin Tran 
…… 
Commit Tran 
Rollback Tran 

以上事务员执行了提交事务操作。执行Rollback Tran系统会返回3903错误,即@@Error=3903,ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。 

实例:使用@@Error返回值来控制回滚 

设有表a,有字段num (int),name (varchar(20));表b,有字段num (int),Add (varchar(50))。以下是一个存储过程,使用了@@Error的返回值来控件事件回滚CREATE PROCEDURE [dbo].[TranTest]   
@num int,@name varchar(20),@Add varchar(20)   
AS   
DECLARE @ErrorA int,@ErrorB int  
begin transaction aa   
insert into a values(@num,@name)   
Set @ErrorA = @@error  
insert into b values(@num,@Add)   
Set @ErrorB = @@error  
if @ErrorA>0 or @ErrorB>0  
begin   
Rollback transaction aa   
end   
else  
commit transaction aa   
GO  

 

转载于:https://www.cnblogs.com/iwenwen/archive/2013/06/13/3133506.html

相关文章:

  • 解决Fedora没有最大化最小化按钮
  • scala Option,None和Some
  • 安装 mysql 数据库, 并做 主 从(一)
  • 《汇编语言第二版——王爽》实验五,5、6题
  • Java面向对象编程
  • elasticsearch无故关闭,Log无报错
  • Java消息中间件入门笔记 - ActiveMQ篇
  • 下载的面试题
  • 创建React App, 完成TodoList版HelloWorld
  • bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)
  • 测试策略和测试计划的区别?
  • 美国某实验室承认使用量子网络已经两年多
  • 【剑指offer】左旋转字符串,C+实现
  • vector中如何按条件删除元素
  • DOTween-Ease缓动函数
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • AWS实战 - 利用IAM对S3做访问控制
  • CODING 缺陷管理功能正式开始公测
  • Javascript 原型链
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • spark本地环境的搭建到运行第一个spark程序
  • 关于springcloud Gateway中的限流
  • 排序算法之--选择排序
  • 突破自己的技术思维
  • 我的面试准备过程--容器(更新中)
  • raise 与 raise ... from 的区别
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​水经微图Web1.5.0版即将上线
  • #100天计划# 2013年9月29日
  • #传输# #传输数据判断#
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (力扣)1314.矩阵区域和
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (转)iOS字体
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net core Swagger 过滤部分Api
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • //解决validator验证插件多个name相同只验证第一的问题
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @31省区市高考时间表来了,祝考试成功
  • @Bean, @Component, @Configuration简析
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Android] 修改设备访问权限