关于事务回滚,rollback tran到底要不要写?
| 关于事务回滚,有些不明白,不知道rollback tran在什么时候用。
begin tran update 表1 update 表2 commit tran 这种写法,在更新表1或表2时出错,事务会不会自动回滚? 如果要加上rollback tran应该加在什么地方?每执行更新表后都用if @@error<>0 rollback tran做个判断吗? |
--我比较习惯加xact_abort选项SET XACT_ABORT ON begin tranupdate 表1update 表2commit tran |
BEGIN TRANSACTION BEGIN TRY sql_statement COMMIT END TRY BEGIN CATCH ROLLBACK TRANSACTION END CATCH |
begin tran update 表1 if @@error<>0begin rollback tran returnend update 表2 if @@error<>0begin rollback tran returnendcommit tran |
| 就看你的set XACT_ABORT 是on还是off了.
当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。 1.set XACT_ABORT off set XACT_ABORT off begin tran update 表1 update 表2 commit tran 结论:如果第二个语句发生错误,那么整个事务将会忽略而提交。因此会造成你的数据的不一致的现象。因此这种情况需要对错误进行判断,如:if @@error <>0 rollback tran 2.set XACT_ABORT on set XACT_ABORT on begin tran update 表1 update 表2 commit tran 结论:如果第二个语句发生错误,,那么整个事务将会自动的回滚。因此可以保证你的数据的一致性,因此不需要对错误进行判断。 |
| 上面写错了 declare @flag int set @flag=0 begin tran update 表1 |
关于事务回滚,rollback tran到底要不要写?的更多相关文章
- mysql分类和事务回滚
主要内容: ***数据定义语言DDL重点 ***数据操纵语言DML重点 数据查询语言DQL重点 ---事务控制语言TCL ---数据库控制语言DCL ---主键(primary key) ---数据冗 ...
- SqlServer事务回滚(2)
SQL Server 2008中SQL应用系列--目录索引 SQL事务 一.事务概念 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行.因此事务是 ...
- [SQL]事务回滚详解及示例
存储过程中的 SET XACT_ABORT ON 和事务 在存储过程中写SET XACT_ABORT ON 有什么用? SET XACT_ABORT ON是设置事务回滚的! 当为ON时,如果你存储中的 ...
- SQL Server事务回滚对自增键的影响
SQL Server事务回滚时是删除原先插入导致的自增值,也就是回滚之前你你插入一条数据导致自增键加1,回滚之后还是加1的状态 --如果获取当前操作最后插入的identity列的值:select @@ ...
- C#使用SqlTransaction事务回滚与SqlBulkCopy批量插入数据
C#中批量处理数据,有时候因为一条记录导致整个批量处理失败.这时候肯能会导致数据不全等问题,这时候我们可以使用SqlTransaction来进行事务回滚,即是要么全部成功要么全部不成功.如下代码 // ...
- SQL 事务回滚
事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服 ...
- Spring异常抛出触发事务回滚
Spring.EJB的声明式事务默认情况下都是在抛出unchecked exception后才会触发事务的回滚 /** * 如果在spring事务配置中不为切入点(如这里的切入点可以定义成test*) ...
- 【Java EE 学习 19】【使用过滤器实现全站压缩】【使用ThreadLocal模式解决跨DAO事务回滚问题】
一.使用过滤器实现全站压缩 1.目标:对网站的所有JSP页面进行页面压缩,减少用户流量的使用.但是对图片和视频不进行压缩,因为图片和视频的压缩率很小,而且处理所需要的服务器资源很大. 2.实现原理: ...
- jfinal 基本应用 --事务回滚
事务回滚 1.当时需要用到事务回滚,但是看到网上只有问题,没有真实的到底怎么用法. 2.我看了一下文档,结合了网上的大神的博客. 第一种方法: Db.tx(new IAtom(){ @Override ...
随机推荐
- 路飞学城-Python开发集训-第5章
面向过程:核心是过程二字,过程是解决问题的步骤,相当于设计一条流水线,是机械式的思维方式 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差 面向对象:核心是对象二字,对象就是特征与技能的结合体. ...
- web基础之http
目录 1.Http协议介绍 Http工作原理 http的请求方法 http的响应响应状态码 状态码的类别 常用HTTP状态码简要介绍 用户访问网站携带的参数,以及服务端返回的参数 (http请求报文 ...
- 【ECMAScript5】ECMAScript5中有关数组的常用方法
1.indexOf() 此方法返回在改数组中第一个找到的元素位置,如果它不存在则返回-1 var arr = ['apple','orange','pear']; console.log(" ...
- nginx之十三:搭建 nginx 反向代理用做内网域名转发
user www www;worker_processes 1;error_log logs/error.log;pid logs/nginx.pid;worker_rlimit_nofile 6 ...
- Ueditor使用以及遇到的问题
原来用的是Kindeditor这个编辑器,但很久没更新了,最新版是13年更新的.现在要换成百度的Ueditor, 在这里记录Ueditor的使用流程和遇到的问题. 一.下载 1.Ueditor官网 这 ...
- web路径问题相对路径和绝对路径,计算机相对路径和绝对路径
**首先得明白相对路径和绝对路径的概念和区别:****相对路径:**相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系.使用相对路径可以为我们带来非常多的便利.([百度百科])* ...
- 深入浅出Tomcat系列
原本打算一篇文章就发了的,无奈文章太长,阅读压力较大.为了让阅读体验更好一些,还是分多篇吧,大概6篇. 下面是这个主题的目录: 深入浅出Tomcat/1- 来历和配置文件 深入浅出Tomcat/2 - ...
- 深入理解Redis复制
复制 A few things to understand ASAP about Redis replication. 1) Redis replication is asynchronous, bu ...
- Python股票分析系列——基础股票数据操作(二).p4
该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第4部分.在本教程中,我们将基于Adj Close列创建烛台/ OHLC图,这将允许我介绍重新采 ...
- Item 16: 让const成员函数做到线程安全
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方 ...