香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > MSSQL >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2020-10-31 14:29 作者:admin610456


银行转账存储过程

USE [BankInfor]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER 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 GetSerialNogoCreate 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 SerialNoselect convert(varchar(6), getdate(), 12)+'000001'
(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)