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)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)

学习心得
最新文章
- 根据变化的日期来自动编号的示例;根...(06.20)
- Access快速开发平台--Acc...(06.16)
- 【Access高效办公】按日期区间...(06.12)
- Access快速开发平台--生成复...(06.07)
- 仓库管理实战课程(25)-导航菜单...(06.06)
- 仓库管理实战课程(24)-库存月结...(06.05)
- 分享一个简单的X氏家谱小示例(06.04)
- 仓库管理实战课程(23)-先入先出(06.02)
- 仓库管理实战课程(22)-代理商库...(05.30)
- 仓库管理实战课程(21)-安全库存...(05.28)