当前位置: 首页 > news >正文

转账事务

先建立数据环境(帐户表)

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><strong><img alt="" src="https://p-blog.csdn.net/images/p_blog_csdn_net/cnlht/1.JPG"><br></strong></shapetype>1.转账事务(使用在存储过程中)

if exists(select name from sysobjects
where name = 'zhuanzhang' and type='p')
drop procedure zhuanzhang
go

--建立一个带有参数的转账存储过程
-- @zhOUT转出帐户帐号
-- @zhIN 转入帐户帐号
--@JinE 金额
create procedure zhuanzhang
@zhOUT varchar(8),@zhIN varchar(8),@JinE int
as

--帐户A向帐户B转账事务

begin transaction

--记录点
save transaction befor_zhuanzhang

--A帐户转出一定金额
declare @xianYou int
select @xianyou=金额 from 帐户表
where 帐户编号=@zhOUT

if @xianyou<@JinE
begin
print '金额不足!'
return
end

update 帐户表 set 金额=金额-@JinE
where 帐户编号=@zhOUT

--B帐户转入一定金额
update 帐户表 set 金额=金额+@JinE
where 帐户编号=@zhIN

if@@Error<>0 or @@rowcount=0
begin
rollback transaction befor_zhuanzhang
print '转账出错错误。'
return
end

commit transaction

2.事务测试(执行存储过程zhuanzhang)

1、execute zhuanzhang 'A','B',5000
2、execute zhuanzhang 'C','D',5000
注意结果变化。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python 输入函数_Python交互环境下打印和输入函数的实例内容
  • Windows Embedded CE 6.0开发初体验(五)构建CE平台
  • python列表添加元素的三种方法定义集合数据对象_python 学习第三天 可迭代对象(列表,字典,元组和集合)...
  • 实现局域网内批量更新 WSUS架设全攻略
  • sqlalchemy in查询优化_SQLAlchemy(2)
  • 杀毒软件被“杀” 连声“救命”都没喊
  • python圆柱体积代码_Java圆柱体表面积和体积计算代码实例
  • 如何去掉Windows资源管理器和IE地址栏的自动补全功能
  • jquery validate表单校验_SpringValid优雅校验入参
  • python 双向链表_双向链表及创建(C语言)详解
  • 关于提高自己JAVA水平的十大技术讨论(转)
  • python语言格式化_python语言-字符串格式
  • 写给那些正在找工作的朋友
  • js 文件不让通过地址访问_Flask Vue.js全栈开发|第2章:通过axios访问Flask RESTful API
  • 串行接口SPI接口应用设计
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Apache Pulsar 2.1 重磅发布
  • Apache的80端口被占用以及访问时报错403
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Javascript弹出层-初探
  • JS题目及答案整理
  • node学习系列之简单文件上传
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 从输入URL到页面加载发生了什么
  • 给新手的新浪微博 SDK 集成教程【一】
  • 技术胖1-4季视频复习— (看视频笔记)
  • 看域名解析域名安全对SEO的影响
  • No resource identifier found for attribute,RxJava之zip操作符
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ‌内网穿透技术‌总结
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (33)STM32——485实验笔记
  • (9)STL算法之逆转旋转
  • (C语言)球球大作战
  • (定时器/计数器)中断系统(详解与使用)
  • (二) 初入MySQL 【数据库管理】
  • (理论篇)httpmoudle和httphandler一览
  • (四)Linux Shell编程——输入输出重定向
  • (转)h264中avc和flv数据的解析
  • (转)mysql使用Navicat 导出和导入数据库
  • ******之网络***——物理***
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .gitignore
  • .gitignore文件---让git自动忽略指定文件
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net打印*三角形
  • @RequestParam详解
  • [20160902]rm -rf的惨案.txt
  • [20171102]视图v$session中process字段含义
  • [Algorithm][综合训练][拜访][买卖股票的最好时机(四)]详细讲解