事务提交及回滚的具体写法
2012-02-22 21:01
645 查看
解决办法一:
在begin transaction 前面加set xact_abort on
这样就可以在过程出错时中断执行,当然也就不能commit了,如此再在最后一个操作的后面加入 if @error=0 就说明所有的操作都执行成功了就可以commit。
具体如:
解决办法二:
不加 set xact_abort on 而是声明一个记录错误的变量
比如:
显然这样在每一个操作的背后都要加入一个记录错误的操作
最后再判断错误是不是0,如果不是则说明过程中某一步出了错,就不commit了。
这比第一种方法在烦一点。
在begin transaction 前面加set xact_abort on
这样就可以在过程出错时中断执行,当然也就不能commit了,如此再在最后一个操作的后面加入 if @error=0 就说明所有的操作都执行成功了就可以commit。
具体如:
set xact_abort on begin trans declare ... <1>操作 <2>操作 ... <n>操作 if @error<>0 begin rollback transaction end else begin commit transaction end end
解决办法二:
不加 set xact_abort on 而是声明一个记录错误的变量
比如:
begin trans declare @nror int set @nror=0 <1>操作 set @nror=@nror+@@error <2>操作 set @nror=@nror+@@error ... <n>操作 set @nror=@nror+@@error if @ror<>0 begin rollback transaction end else begin commit transaction end end
显然这样在每一个操作的背后都要加入一个记录错误的操作
最后再判断错误是不是0,如果不是则说明过程中某一步出了错,就不commit了。
这比第一种方法在烦一点。
相关文章推荐
- c#中事务、批量提交、回滚的写法[代码片段]
- oracle学习笔记(四)---15.事务回滚提交、索引、prowerdesigner
- JDBC 事务的回滚 提交
- c语言mysql数据库事务开始、提交、回滚范例
- Java中事务的提交与回滚
- 对mysql事务提交、回滚的错误理解
- ibatis 对事务和批量提交的处理,以及回滚的处理
- 【web】Spring中使用DataSourceTransactionManager手动提交或回滚事务
- c++ mysql事务提交及回滚
- java 事务提交/回滚
- 【转】批量复制操作(SqlBulkCopy)的出错处理:事务提交、回滚
- (六)事务的提交与回滚极死锁检测、处理和预防
- JDBC对事务的使用(包括自动提交,回滚等知识)
- 事务的回滚和不提交的区别
- 为什么事务要提交或者回滚?
- 如何在mysql下实现事务的提交与回滚
- 87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚
- "在批处理结束时检测到不可提交的事务。该事务将回滚。"的解决方案
- 批量复制操作(SqlBulkCopy)的出错处理:事务提交、回滚
- (MYSQL学习笔记4)事务的开启、提交、回滚