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

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

银行转账,事务处理,触发器

  • 2008年12月23日 16:11
  • 6KB
  • 下载

MySQL数据库事务实例(模拟银行转账)

在数据库系列文章中[MySQL数据库事务基本操作](http://blog.csdn.net/fengpojian/article/details/73571983) 介绍了MySQL数据库基本的事务...

JDBC设置事务的隔离级别和转账案例

转帐案例    1)参见图>    2)项目中,事务可能在dao层,也可能在service层,不论在哪一层,都必须确保使用的都是同一个connection    3)为了确保在Service...
  • boxyuan
  • boxyuan
  • 2017年02月02日 11:25
  • 170

Mysql中的事务(银行转账中经常用到)

什么是事务? 事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务 注意:mysql数据支持事务,但是要求必须是innoDB存储引擎 解决这个问题: my...
  • zsj523
  • zsj523
  • 2013年04月17日 21:28
  • 2120

事务-转账案例

事务就是多项操作的集合,这多项操作要么都成功,要么都不成功。   转账案例:需求:一个银行用户给另一个银行用户转账,整个过程涉及两个操作,一个是一个用户给另一用户的账户添加100块钱,这个用户的账号上...

Android 银行转账(事务)

package com.example.a22_bank_transfer; import android.database.Cursor; import android.database.SQLE...

spring的事务管理(配置文件方式和注解方式实现、转账环境搭建)

spring的事务管理(转账环境搭建)  Spring的事务管理    事务概念       1 什么是事务       2 事务特性              3 不考虑隔离...

Spring事务管理的四种方式(以银行转账为例)

1.Spring事务管理   1)事务的作用   将若干的数据库操作作为一个整体控制,一起成功或一起失败。   原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。   一致...

DBUtils控制事务------转账操作

dao: package com.itheima.dao; import com.itheima.domain.Account; public interface AccountDao { /...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 事务转账
举报原因:
原因补充:

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