事务中SET XACT_ABORT各种用法
2015-09-20 15:14
316 查看
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 */
相关文章推荐
- Android AIDL技术详解
- hdu5461 Largest Point(沈阳网赛)
- HTML中的文本控制
- Jade —— 源于 Node.js 的 HTML 模板引擎
- 软件工程视频总结
- 9.19 third day 注意事项
- Handler的绑定过程
- sublime text 2/3支持中文编码
- 全排列
- HDU 2095 find your present (2)
- 利用XML文件备份短信---手动拼字符串
- Android开源框架Volley
- 智能指针仿真-002-值型智能指针
- vmware下linux找不到网卡eth0的解决方法
- JAVA数据类型转换大全
- ARM家族大检阅
- 帝国cms教程:帝国cms在列表页使用sys_ResizeImg函数自动生成不同大小的缩略图
- HTTP协议状态码详解(HTTP Status Code)
- C++ static const 修饰成员
- WSDL(Web服务描述语言)详细解析