SQL生成流水号

本文介绍了一种使用 SQL Server 实现当前日期加自增序列号的方法。通过获取当前日期的年月日部分,并结合从数据库表中读取的最大ID,实现了格式如 '202301010001' 这样的序列号生成。

经过了几次的测试终于成功了

declare @Year Int,
        @Month int,
        @Day int,
        @Temp_No varchar(12),
        @NeedNo varchar(4),
    @No varchar(20),
    @Number varchar(50),
    @RandNo varchar(50),
    @Nu varchar(10)
  select @year=Year(GetDate())
  select @Month=Month(GetDate())
  select @Day=Day(GetDate())
  select @No=Str(@Year,4,0)+
                (select
                 case
                  when @Month>=10 then Str(@Month,2,0)
                  when @Month<10 Then '0'+Str(@Month,1,0)
                end)+
                (select
                 case
                  when @Day>=10 then Str(@Day,2,0)
                  when @Day<10 Then '0'+Str(@Day,1,0)
                 end)
select @Number =Idd from lsh
select @Nu=count(*) from lsh
if @Nu ='0'
BEGIN
select @No=@No+'0001'
END
else
BEGIN
     SELECT @RandNo = STR(CONVERT(int,(SUBSTRING(@Number ,9,4))+1),4,0)
     SELECT @RandNo = REPLACE( @RandNo,' ','0')
     SELECT @No = @No + @RandNo
END
insert into lsh(Idd) values(@No)
select * from lsh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值