PL/SQL

  • Post author:
  • Post category:其他


接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


PRINT

‘余额不足.’



END



END



EXEC sp_transfer_money3

’01’,

’02’,

100.0




转载于:https://www.cnblogs.com/yijieyufu/p/11360667.html