SQL Server自动生成流水码,前缀+日期+流水码
时 间:2018-07-06 08:13:56
作 者:缪炜 ID:24010 城市:江阴
摘 要:数据库表单流水码单号应用
正 文:
-- ============================================= -- Create author: bob <hy12.com> -- Create date: <2015-04-24> -- Description: <自动生成流水码,前缀+日期+流水码> -- 日期模式: 0 年月日 e.g.:150424 -- 1 年月 e.g.:1504 -- 2 年 e.g.:15 -- ============================================= Create PROCEDURE [dbo].[AutoNo] ( @prefix varchar(10), --前缀字母 @mode int, --日期模式 @nolen varchar(10), --流水号长度 @listna varchar(20), --流水单号对应的列名,建议索引 @tablena varchar(20),--表名 @runningnum varchar(20) output)--生成流水码 AS BEGIN SET NOCOUNT ON; declare @sql nvarchar(200) declare @num int if (@mode=0) begin --查询表获取当天最大流水号语句,当日期模式为年月日 set @sql = 'select isnull(max(convert(int,substring('+@listna+',len('+@listna+')-'+@nolen+'+1,'+@nolen+'))),0)+1 from '+@tablena +' where substring('+@listna+',len('+@listna+')-5-'+@nolen+',6)=convert(varchar(100),getdate(),12)' end else if (@mode=1) begin --查询表获取当天最大流水号语句,当日期模式为年月 set @sql = 'select isnull(max(convert(int,substring('+@listna+',len('+@listna+')-'+@nolen+'+1,'+@nolen+'))),0)+1 from '+@tablena +' where substring('+@listna+',len('+@listna+')-3-'+@nolen+',4)=convert(varchar(4),getdate(),12)' end else begin --查询表获取当天最大流水号语句,当日期模式为年 set @sql = 'select isnull(max(convert(int,substring('+@listna+',len('+@listna+')-'+@nolen+'+1,'+@nolen+'))),0)+1 from '+@tablena +' where substring('+@listna+',len('+@listna+')-1-'+@nolen+',2)=convert(varchar(2),getdate(),12)' end --创建临时表,获取最大流水号值 create table #temp (Total int); insert into #temp EXEC(@sql); set @num = (Select Total FROM #temp) if (@mode=0) begin --拼接流水号,当日期模式为年月日 set @runningnum = @prefix+CONVERT(varchar(100),GETDATE(),12)+replicate('0',@nolen-len(@num))+convert(varchar(20),@num) end else if (@mode=1) begin --拼接流水号,当日期模式为年月 set @runningnum = @prefix+CONVERT(varchar(4),GETDATE(),12)+replicate('0',@nolen-len(@num))+convert(varchar(20),@num) end else begin --拼接流水号,当日期模式为年 set @runningnum = @prefix+CONVERT(varchar(2),GETDATE(),12)+replicate('0',@nolen-len(@num))+convert(varchar(20),@num) end select @runningnum END
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)