--包含用户的帐号和钱数 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