• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    实用的银行转账存储过程和流水号生成存储过程

    银行转账存储过程

    USE [BankInfor]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[Transfer](@inAccount int,@outAccount int,@amount float)
    as declare
      @totalDeposit float;
      begin
      select @totalDeposit=total from Account where AccountNum=@outAccount;
      if @totalDeposit is null
      begin
      rollback;
      print'转出账户不存在或账户中没有存款'
      return;
      end
      if @totalDeposit@amount
      begin
      rollback;
      print'余额不足,不能操作'
      return;
      end
      update Account set total=total-@amount where AccountNum=@outAccount;
      update Account set total=total+@amount where AccountNum=@inAccount;
      print'转账成功!'
      commit;
      end;

    流水号生成存储过程

    if exists(select 1 from sysobjects where id=OBJECT_ID('GetSerialNo') and xtype='p')
    drop proc GetSerialNo
    go
    Create procedure [dbo].[GetSerialNo]  
    (  
      @sCode varchar(50)  
    )  
    as 
    begin 
     Declare @sValue varchar(16),@dToday  datetime,@sQZ varchar(50) --这个代表前缀 
      Begin Tran   
      Begin Try  
       -- 锁定该条记录,好多人用lock去锁,起始这里只要执行一句update就可以了 
      --在同一个事物中,执行了update语句之后就会启动锁 
      Update SerialNo set sValue=sValue where sCode=@sCode  
      Select @sValue = sValue From SerialNo where sCode=@sCode  
      Select @sQZ = sQZ From SerialNo where sCode=@sCode  
       -- 因子表中没有记录,插入初始值  
       If @sValue is null  
       Begin 
        Select @sValue = convert(bigint, convert(varchar(6), getdate(), 12) + '000001')  
        Update SerialNo set sValue=@sValue where sCode=@sCode  
       end else  
       Begin        --因子表中没有记录  
        Select @dToday = substring(@sValue,1,6)  
        --如果日期相等,则加1  
        If @dToday = convert(varchar(6), getdate(), 12)  
         Select @sValue = convert(varchar(16), (convert(bigint, @sValue) + 1))  
        else       --如果日期不相等,则先赋值日期,流水号从1开始  
         Select @sValue = convert(bigint, convert(varchar(6), getdate(), 12) +'000001')  
       Update SerialNo set sValue =@sValue where sCode=@sCode  
       End 
      Select result = @sQZ+@sValue   
       Commit Tran  
      End Try  
      Begin Catch  
       Rollback Tran  
       Select result = 'Error' 
      End Catch  
    end 
    select*from SerialNo
    select convert(varchar(6), getdate(), 12)+'000001'
    您可能感兴趣的文章:
    • Android 高仿微信转账金钱输入框规则
    • python 实现网上商城,转账,存取款等功能的信用卡系统
    • Python实现信用卡系统(支持购物、转账、存取钱)
    • Python3连接MySQL(pymysql)模拟转账实现代码
    • 基于Python实现一个简单的银行转账操作
    • PHP+Mysql基于事务处理实现转账功能的方法
    • php利用事务处理转账问题
    • php+Mysqli利用事务处理转账问题实例
    • php+mysqli事务控制实现银行转账实例
    • 转账支票、现金支票日期大写对照表(数字大写)
    • 微信开发--企业转账到用户
    上一篇:SQL Server数据库中批量导入数据的2种方法
    下一篇:记一次公司仓库数据库服务器死锁过程及解决办法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    实用的银行转账存储过程和流水号生成存储过程 实,用的,银行,转账,存储,