• Sql事务


    完整代码如下:

    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

    示例图:

  • 相关阅读:
    vue a标签下载图片文档显示下载失败
    20200331
    拿奖不排队——项目系统设计与数据库设计
    重修信息管理系统——需求说明书
    拿奖不排队--项目需求分析
    《重修信息系统》项目需求分析模型
    2020软件工程作业--团队02
    拿奖不排队 ——团队展示
    PHP POST请求同时获取结果和header信息
    Peer reports incompatible or unsupported protocol version.
  • 原文地址:https://www.cnblogs.com/zcttxs/p/2484707.html
Copyright © 2020-2023  润新知