接ACID转账事务的代码
CREATE
PROCEDURE sp_transfer_money3
@out_cardno
char(
20),
@in_cardno
char(
20),
@money
numeric(
18,
2)
as
BEGIN
DECLARE @remain
numeric(
18,
2)
select @remain=money
from account
where cardno=@out_cardno
if @remain>@money
BEGIN
BEGIN
TRANSACTION T1
update account
set money = money-@money
where cardno=@out_cardno
update account
set money = money+@money
where cardno=@in_cardno PRINT
‘转账成功.’
if @remain>@money
begin
rollback
transaction
end
COMMIT
TRANSACTION T1
END
ELSE
BEGIN
‘余额不足.’
END
END
EXEC sp_transfer_money3
’01’,
’02’,
100.0
转载于:https://www.cnblogs.com/yijieyufu/p/11360667.html