SQL 事务转账

原创 2011年01月24日 22:59:00

create procedure TransferMoeny
(
    @FromAccountNo varchar(50),-- 转出账号
    @ToAccountNo varchar(50),--转入账号
    @MoneyCount money--转账金额
)
as
--判断账号是否存在
if exists (select 1 from 帐户表 where 账号 = @FromAccountNo)
begin
    if exists (select 1 from 帐户表 where 账号 = @ToAccountNo)
    begin
        --判断转出金额是否大于当前余额
        if (select 当前余额 from 帐户表 where 账号 = @FromAccountNo) >= @MoneyCount
        begin
            --开始转账
            begin transaction
            insert into [存取记录表] ([账号],[存取类型], [存取金额]) values(@FromAccountNo, -1,@MoneyCount)
            if @@error <> 0
            begin
                rollback transaction--发生错误则回滚事务,无条件退出l
                return
            end
                       insert into [存取记录表] ([账号],[存取类型], [存取金额]) values(@ToAccountNo, 1,@MoneyCount)
            if @@error <> 0
            begin
                rollback tran
                return
            end
            commit transaction --两条语句都完成,提交事务
        end
        else   
            raiserror ('转账金额不能大于该账号的余额',16,1)
    end
    else
    raiserror ('转入账号不存在',16,1)

end
else
    raiserror ('转出账号不存在',16,1)
文章来自学IT网:http://www.xueit.com/html/2009-06/26_2116_00.html

数据库

原文链接。自己摘抄了一些东西。 (1)什么是存储过程?有哪些优缺点? 存储过程是一些预编译的SQL语句。 更加直白的理解:存储过程可以说是一个记录集,它是由一些T-S...
  • a168861888m
  • a168861888m
  • 2017年12月27日 12:51
  • 15

SQL

SQL简介SQL (发音为sequel) 是基于集合的高级别声明性计算机语言,所有程序和用户都使用它来访问 Oracle 数据库中的数据。虽然某些 Oracle 工具和应用程序掩盖了对SQL的使用,但...
  • pengshulin213
  • pengshulin213
  • 2016年11月16日 18:27
  • 94

使用事务实现银行转账操作

建表: CREATE TABLE account( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(30), money FLOAT ...
  • coderlady
  • coderlady
  • 2017年02月22日 22:21
  • 1014

909422229__JDBC关于转账问题事务解决

service(业务层) --  biz 业务层会多次调用dao完成 相关的功能; service开发思路:   JDBC中的事务: jdbc中的事务是自动提交的,默认一条sql命令就提交一次事务...
  • a909422229
  • a909422229
  • 2016年11月26日 15:04
  • 208

数据库事务

(1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起...
  • qq_36011182
  • qq_36011182
  • 2017年06月27日 11:27
  • 80

微信企业转账实例之理论介绍

最近在搞公司的电商项目时,客户要求加上一个微信转账的功能。由于项目中并没有对应的插件,没法,只有现学现用。我先去微信商户平台官网上读取各种文档,最终做了一个demo。最后集成到了公司的项目中,大功告成...
  • ydm19891101
  • ydm19891101
  • 2016年08月24日 13:11
  • 2496

Sql Server使用事务实现--转账问题

create table Bank (   Cid char(4) primary key,   balance money ) alter table Bank add constrai...
  • liu_111111
  • liu_111111
  • 2012年11月08日 19:33
  • 1017

最基础的事务 银行转账小事列

BEGIN TRANSACTION /*--定义变量,用于累计事务执行过程中的错误--*/ DECLARE @errorSum INT declare @maxmoney int SET @...
  • u012374381
  • u012374381
  • 2017年04月12日 00:18
  • 348

T-sql

--xp_cmdshell, 1的时候xp_cmdshell才能使用EXEC sp_configure show advanced options, 1;RECONFIGURE;EXEC sp_con...
  • sky_1632008
  • sky_1632008
  • 2010年01月07日 10:42
  • 2845

sql回滚语句

以下是SQL 回滚的语句:方案一:SET   XACT_ABORT   ON--如果产生错误自动回滚 GO BEGIN   TRANINSERT   INTO   A   VALUES   (4) I...
  • happyhell
  • happyhell
  • 2007年12月21日 09:50
  • 9249
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 事务转账
举报原因:
原因补充:

(最多只允许输入30个字)