zoukankan      html  css  js  c++  java
  • 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

    示例图:

  • 相关阅读:
    python-scapy学习笔记-(1)
    python系统性能模块笔记
    Python爬虫总结
    pm2的的常用命令及用法
    Javascript的map与forEach的区别
    对MVVM思想的在认识
    RN的打包
    undefined与null的区别
    rem与em的区别
    JS的函数参数传递为值传递
  • 原文地址:https://www.cnblogs.com/zcttxs/p/2484707.html
Copyright © 2011-2022 走看看