SQL生成流水号

本文介绍了一种在 SQL Server 中使用 T-SQL 代码自动生成带有日期前缀的流水号的方法。通过定义变量来获取当前年月日,并结合表中已存在的最大编号来生成新的唯一编号。

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

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值