手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >实用的银行转账存储过程和流水号生成存储过程
实用的银行转账存储过程和流水号生成存储过程
摘要:银行转账存储过程USE[BankInfor]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTER...

银行转账存储过程

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'

【实用的银行转账存储过程和流水号生成存储过程】相关文章:

SQL 数据库中的存储过程的参数问题

如何修改SQL SERVER内置存储过程

通用分页存储过程,源码共享,大家共同完善

MsSql 存储过程分页代码 [收集多篇]

sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享

sqlserver 复制表 复制数据库存储过程的方法

sqlserver 常用存储过程集锦

sqlserver 通用分页存储过程

SQL Server存储过程的基础说明

SqlServer 2000、2005分页存储过程整理

精品推荐
分类导航