Sql Server 事务

--包含用户的帐号和钱数
create table BanlAccount   
(
    --帐号
     ID int not null primary key,  
    --转账金额
     moneys money    
)
--插入两条数据
insert into BanlAccount  values ('1','2000') 

insert into BanlAccount  values ('2','3000')
--用这个表创建一个存储过程:
--创建存储过程,定义几个变量
create procedure storeProcess 

@toID int,    
--接收转账的账户

@fromID int,  
--转出自己的账户

@momeys money, 
--转账的金额

as
--开始执行事务 
begin tran

update  BanlAccount  
set moneys=moneys-@momeys 
where ID=@fromID 
--执行的第一个操作,转账出钱,减去转出的金额

update BanlAccount  
 set moneys=moneys+@momeys 
 where ID=@toID 
--执行第二个操作,接受转账的金额,增加 

--判断如果两条语句有任何一条出现错误
if @@error<>0 

begin 
–开始执行事务的回滚,恢复的转账开始之前状态
rollback tran 

return 0

end

else   
--如何两条都执行成功,执行这个事务的操作
begin commit tran 
return 1

end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值