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® SQL Server™ 是否自动回滚当前事务。
语法
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 的设置是在执行或运行时设置,而不是在分析时设置
最新文章
- The shortest path---hdu2224 &;&; Tour---poj2677(旅行商问题)
- AVL的删除写法的一个错误
- High CPU Usage 原因及分析
- windows 7下qtcreator里QWT文件的pro配置
- IDEA 编译找不到符号,文件却没有错误。
- Spring Boot+AngularJS中因为跨域导致Session丢失
- 代码规范[iOS]
- nginx https
- 【Android界面实现】FragmentPagerAdapter与FragmentStatePagerAdapter使用详解与区别
- Java 多线程编程两个简单的样例
- 杂文:AlphaGo 与 Alan Turing
- linux网络编程:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET(转)
- WdatePicker日历控件用法
- 《python源代码剖析》笔记 python虚拟机中的函数机制
- Android应用程序基础
- TempDB问题定位与解决
- GIL(全局解释器锁)
- PHP基础介绍
- git 修改文件内容
- SpringBoot详细研究-05微服务与拾遗
热门文章
- ES6学习笔记(1,let和const)
- List接口的实现类与ArrayList相似,区别是Vector是重量级的组件,使用使消耗的资源比较多
- php -- 四种基础排序:冒泡、选择、插入、快速
- ThinkPHP项目笔记之MVC篇
- hdu 1253:胜利大逃亡(基础广搜BFS)
- ios 从URL中截取所包含的参数,并且以字典的形式返回和参数字典转URL
- kotlin 遇到的问题
- pushViewController自定义动画http://blog.csdn.net/ralbatr/article/details/22039233
- JSP小例子——实现用户登录小例子(不涉及DB操作)
- 75、JSON 解析库---FastJson, Gson