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选项卡示例】Ac...(09.09)
- 【Access源码示例】按输入...(09.02)
- 【Access日期区间段查询】...(08.29)
- 【Access日期区间段查询】...(08.27)
- Access怎样才能实现日期时...(08.21)
- 【Access定时打开查询】A...(08.19)
- Access生成固定数量的记录...(08.13)
- Access怎样才能实现日期时...(08.12)
- Access利用导航窗体控件对...(08.03)
学习心得
最新文章
- Access表中的字段名、字段标题...(09.19)
- Access快速开发平台--更改“...(09.18)
- 【中秋及国庆优惠】Access培训...(09.15)
- Access如何将日期型的数值转换...(09.14)
- 英文输入法输入数据中存在单引号引起...(09.11)
- 【Access选项卡示例】Acce...(09.09)
- 让Access光标停留在指定的控件...(09.07)
- 关于Access查询条件里使用通配...(09.06)
- Access报表偷懒制作法--Ac...(09.05)
- Access快速开发平台--窗体数...(09.04)