zoukankan      html  css  js  c++  java
  • 存储过程转账

    -- ================================================
    -- Template generated from Template Explorer using:
    -- Create Procedure (New Menu).SQL
    --
    -- Use the Specify Values for Template Parameters
    -- command (Ctrl-Shift-M) to fill in the parameter
    -- values below.
    --
    -- This block of comments will not be included in
    -- the definition of the procedure.
    -- ================================================
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: <王>
    -- Create date: <2017-9-14>
    -- Description: <用户借款>
    -- =============================================
    alter PROCEDURE Pro_jk
    -- 定义参数
    @jekuanr int,--借款人
    @bejkuanr int,--被借款人
    @moeny decimal(18,2),--借款金额
    @result nvarchar(200) output--结果输出
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    begin tran;--事物开启
    begin try
    declare @oldmoney decimal ;--被借款人的总金额
    declare @oldname nvarchar(200);--被借款人名字
    select @oldmoney=Usermoney,@oldname=Username from Userb where Userid=@bejkuanr;--查询被借款人的金额
    if(@oldmoney>=@moeny and @moeny>0)
    begin
    declare @err int=0;--定义错误编号
    update Userb set Usermoney=Usermoney-@moeny where Userid=@bejkuanr;--修改被借款人的金额
    set @err=@err+@@ERROR;--每次sql执行 获取一次错误编码
    update Userb set Usermoney=Usermoney+@moeny where Userid=@jekuanr;--修改借款人的金额
    set @err=@err+@@ERROR;--每次sql执行 获取一次错误编码
    COMMIT TRAN;
    declare @jekuaname nvarchar(200);--借款人名字
    select @jekuaname=Username from Userb where Userid=@jekuanr;--查询借款人的名字
    insert into Userlogn values
    (
    @jekuanr,
    @bejkuanr,
    @jekuaname+'在时间:'+convert(varchar(50),getdate(),121)+'借了'+@oldname+'的'+cast(@moeny as varchar(20))+'元'
    );
    set @err=@err+@@ERROR;--每次sql执行 获取一次错误编码

    IF(@err =0)
    BEGIN
    SET @result ='借款成功';
    COMMIT TRAN; --执行成功 事物提交
    END
    ELSE
    begin
    SET @result ='借款失败';
    ROLLBACK TRAN; --执行失败 事物回滚
    END

    end
    end try
    begin catch
    rollback TRAN
    end catch
    END
    GO

  • 相关阅读:
    页面实现文件的下载
    微信小程序拉起登录的操作
    css3之border-radius理解
    web前端常用网站--更新中
    小程序中遇见文件过大的话就需要分包
    JS中的“&&”与“&”和“||”“|”有什么区别?
    ts中有时莫名报错
    浏览器解析JavaScript的原理
    在vue中axios的问题
    eslint的规则
  • 原文地址:https://www.cnblogs.com/w-pengchao/p/7872765.html
Copyright © 2011-2022 走看看