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)
- Access制作的RGB转CM...(09.22)
- Access制作的RGB调色板...(09.15)
- Access制作的快速车牌输入...(09.13)
- 【Access高效办公】统计当...(06.30)
- 【Access高效办公】用复选...(06.24)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
学习心得
最新文章
- 【Access高效办公】上一年度累...(10.30)
- Access做的一个《中华经典论语...(10.25)
- Access快速开发平台--加载事...(10.20)
- 【Access有效性规则示例】两种...(10.10)
- EXCEL表格扫描枪数据录入智能处...(10.09)
- Access快速开发平台--多行文...(09.28)
- 关于从Excel导入长文本数据到A...(09.24)
- Access制作的RGB转CMYK...(09.22)
- 关于重装系统后Access开发的软...(09.17)
- Access制作的RGB调色板示例(09.15)


.gif)
