SQL2000 事务回滚问题探讨
create procedure test_tran
as
set xact_abort on -----用@@error判断,对于严重的错误,系统根本就不会执行随后对@@error的判断,会直接终止执行。所以设置set xact_abort on 是必要的
BEGIN TRANSACTION RemoteUpdate
insert psn_degree values(22,'test')
select 1/0
IF @@error !=0 BEGIN
ROLLBACK TRANSACTION RemoteUpdate
RAISERROR('出错!网络速度慢或断线!', 16, 16) WITH SETERROR
RETURN ---没有return 将继续向下执行
end
else begin
COMMIT TRANSACTION RemoteUpdate
end
IF @@error !=0 BEGIN
ROLLBACK TRANSACTION RemoteUpdate
RAISERROR('出错!网络速度慢或断线!', 16, 16) WITH SETERROR
RETURN ---没有return 将继续向下执行
end
COMMIT TRANSACTION RemoteUpdate
相关推荐
-
Spring事务管理只对出现运行期异常进行回滚
一.结论 Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚. 如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚. 关于异常的分类一下详细介绍: 1.基本概念 看java的异常结构图 Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Exception是异常,java.lang.Exception 2.Excep
-
SQL2000 事务回滚问题探讨
复制代码 代码如下: create procedure test_tran as set xact_abort on -----用@@error判断,对于严重的错误,系统根本就不会执行随后对@@error的判断,会直接终止执行.所以设置set xact_abort on 是必要的 BEGIN TRANSACTION RemoteUpdate insert psn_degree values(22,'test') select 1/0 IF @@error !=0 BEGIN ROLLBACK T
-
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
1. 添加一个新对象 前面介绍了映射到实体表的映射类User,如果我们想将其持久化(Persist),那么就需要将这个由User类建立的对象实例添加到我们先前创建的Session会话实例中: 复制代码 代码如下: ed_user = User('ed', 'Ed Jones', 'edspassword')session.add(ed_user) 上面两段代码执行完后对象持久化了么?你或许会兴冲冲的跑去数据库里查看,结果却失望而归--数据库里什么都没有.为什么呢?因为SQLAlchemy采取的是
-
ThinkPHP实现事务回滚示例代码
ThinkPHP的事务回滚示例如下: $m=D('YourModel');//或者是M(); $m2=D('YouModel2'); $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 $result=$m->where('删除条件')->delete(); $result2=m2->where('删除条件')->delete(); if($result && $result2){ $m->commit();//成功则提交
-
Java Spring 事务回滚详解
spring 事务回滚 1.遇到的问题 当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误.伪代码如下: public method() { Dao1.save(Person1); Dao1.save(Person2); Dao1.save(Person2);//假如这句发生了错误,前面的两个对象会被保存到数据库中 Dao1.save(Person2); } 期待的情况:发生错误之前的所有数据库保存操作都回滚,即不保存 正常情况:前面的数据库操作会被执行,而发生数据库操作错
-
php PDO实现的事务回滚示例
本文实例讲述了php PDO实现的事务回滚.分享给大家供大家参考,具体如下: $servername="localhost"; $username="root"; $password="admin"; $dbname="test"; try{ $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); $conn-&
-
php事务回滚简单实现方法示例
本文实例讲述了php事务回滚简单实现方法.分享给大家供大家参考,具体如下: $servername="localhost"; $username="root"; $password="admin"; $dbname="test"; try{ $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); $conn-&g
-
java事务回滚失败问题分析
Spring-Java事物回滚失效处理最近在做项目中,无意间发现有个类在抛事物回滚操作,数据也正常的插入到数据库当中了,于是仔细查看看一下具体原因. 一切还是要从Java的检查型异常和非检查型异常说起. 那么什么是检查型异常什么又是非检查型异常呢? 最简单的判断点有两个: 1.继承自RuntimeException或Error的是非检查型异常,而继承自Exception的则是检查型异常(当然,RuntimeException本身也是Exception的子类). 2.对非检查型类异常可以不用捕获,
-
mongoDB 4.0事务回滚的辛酸历程探究
前言 主管前几天发现mongoDB已经升级到4.0了,迫不及待得让我实现他期待已久的事务回滚,发现还是有很多坑啊! 下面是我将已有的本地mongoDB升级到支持事务回滚的历程,分享出来,有错误的地方欢迎指正! 以mac为例哈 部署mongodb事务回滚 1.准备工作 升级mongodb至4.0.0 $ brew upgrade mongodb 升级或安装mongodb.js v3.1.0 以上 $ npm i mongodb --save-dev 坑 升级完上述后,db.js里连接mongo时,
-
在laravel中实现事务回滚的方法
之前做项目用到了事务回滚这个机制.我把代码贴出来多多交流给点意见,我用的是laravel 5.1bane版本的, public static function createDeal($to_status, $params, $new_balance, $update = true) { \DB::beginTransaction(); try { $update_order_status = \DB::table('wallet_order') ->where('order_id', $para
-
springboot手动事务回滚的实现代码
亲测在使用@Transactional.@Transactional(rollbackFor = Exception.class)及catch异常之后 throw new RuntimeException();仍然不能解决线程中的事务回滚.下面使用线程所机制,进行整体的事务提交及事务回滚,代码如下: 在springboot启动类上加 @EnableTransactionManagement 注解 线程类中添加以下代码 @Autowired private PlatformTransactio
随机推荐
- 99%的程序员都会收藏的书单 你读过几本?
- 正则表达式regular expression详述(一)
- 在Ubuntu系统下安装JDK和Tomcat的教程
- JS使用eval解析JSON的注意事项分析
- PHP编写学校网站上新生注册登陆程序的实例分享
- Laravel 5.4中migrate报错: Specified key was too long error的解决
- javascript 操作select下拉列表框的一点小经验
- JavaScript两种跨域技术全面介绍
- Mysql 5.7 忘记root密码或重置密码的详细方法
- 最简洁的asp多重查询的解决方案
- 用JavaScript 判断用户使用的是 IE6 还是 IE7
- 恢复 SQL 被注入后的数据代码
- PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
- jQuery实现淡入淡出的模态框
- Java 高并发十: JDK8对并发的新支持详解
- Nginx搭建https服务器教程
- 详解Linux文件锁flock
- Gridview自动排序功能的实现
- php中mkdir函数用法实例分析
- 详解React Native 采用Fetch方式发送跨域POST请求