完整代码如下:
View Code
--创建表 create table t_money ( userid varchar(20), username varchar(30), [money] int ) go --插入数据 insert into t_money values('1111','puter',1000) insert into t_money values('2222','judy',1000) go --创建转账存储过程 create proc proc_updatemoney @adduserid varchar(30), --转入的用户 @subtrationuserid varchar(30), --转出的用户 @money int, --转出金额 @errormessage varchar(200) output--输出参数 as Declare @intErrorCode int --错误数 set @intErrorCode=0 Declare @courentmondy int --当前余额 Declare @rownum int --影响行数 set @rownum=0 begin transaction --开始事务 select @courentmondy=money from t_money where userid=@subtrationuserid --转出账户当前余额 if(@money>@courentmondy) --转出金额是否大于余额 begin select * from dbo.t_money set @errormessage='当前余额不足!' set @intErrorCode=1 --记录错误 end else begin update t_money set [money]=[money]+@money where userid=@adduserid Select @intErrorCode=@intErrorCode+@@Error --记录错误 Select @rownum=@rownum+@@rowcount --记录影响行数 update t_money set [money]=[money]-@money where userid=@subtrationuserid Select @intErrorCode=@intErrorCode+@@Error --记录错误 Select @rownum=@rownum+@@rowcount --记录影响行数 end if(@intErrorCode=0 and @rownum=2) --判断是否有错误 begin commit transaction --提交事务 select * from dbo.t_money set @errormessage='操作成功!' return @rownum end else begin rollback transaction --回滚事务 return @rownum end
示例图: