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)
SQL 事务转账
最新推荐文章于 2024-04-12 10:23:54 发布
创建了一个名为TransferMoney的存储过程,用于处理SQL中的转账事务。该过程首先检查转出和转入账号是否存在,然后判断转出金额是否小于等于当前账号余额。如果所有条件满足,事务开始,将转出和转入记录插入到存取记录表中,若发生错误则回滚事务;否则,提交事务。若账号不存在或金额超出余额,会触发错误提示。
摘要由CSDN通过智能技术生成