alter function AutoNum(@prefix varchar(3))
returns varchar(20)
as
begin
DECLARE @str VARCHAR(20), @dateStr VARCHAR(6),@num VARCHAR(5),@oldStr VARCHAR(20),@dt datetime
select @dt=today from numdate
SET @dateStr=RIGHT(YEAR(@dt),2)+RIGHT('0'+Convert(VARCHAR(2),MONTH(@dt)),2)
+RIGHT('0'+Convert(VARCHAR(2),DAY(@dt)),2)
SELECT @oldStr=MAX(pigID) FROM pig
IF @oldStr is not null
begin
declare @timer varchar(6),@amount varchar(5)--存放日期和流水号
set @timer=substring(@oldStr,4,9)--截取时间6位
set @amount=right(@oldStr,5)--截取流水号5位
if @timer=@dateStr--如果数据库表中的日期和当前日期相等,则在流水号上加1
set @str=@prefix+@timer+right('00000'+Convert(varchar(5),(@amount+1)),5)
else
set @str=@prefix+@dateStr+'00001'
end
IF @oldStr is null--如果数据表为空,则新生成一个编号
begin
set @str=@prefix+@dateStr+'00001'
end
return @str
end
go
insert into pig(pigID) values(dbo.AutoNum('HQ-'))
qq_花开花谢_0
吃鸡游戏
相关分类