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
随机推荐
- python3使用PyMysql连接mysql数据库实例
- NODE.JS加密模块CRYPTO常用方法介绍
- 基于jquery实现一张图片点击鼠标放大再点缩小
- oracle修改scott密码与解锁的方法详解
- 如何实现浏览器上的右键菜单
- JavaScript 控制字体大小设置的方法
- php smtp实现发送邮件功能
- C#使用GDI+创建缩略图实例
- Shell脚本自动更新hosts实现免翻墙访问google
- Ajax动态加载数据库示例
- 读取mysql一个库下面的所有的表table
- 详解jQuery中的empty、remove和detach
- JavaScript中的普通函数和箭头函数的区别和用法详解
- 基于HttpClient在HTTP协议接口测试中的使用(详解)
- 详解Springboot自定义异常处理
- javaweb在线支付功能实现代码
- error LNK2019: 无法解析的外部符号 问题的解决办法
- Python对数据进行插值和下采样的方法
- 使用Win10+Android+夜神安卓模拟器,搭建ReactNative开发环境
- Laravel框架查询构造器简单示例