sql 流水号获取

经常用到产生订单号等流水单号的场景,sqlserver实现流水号,如下:

表tb_b_Seq(流水号表):

CREATE TABLE tb_b_Seq( 
Year int ,--年份 
Month int,--月份 
Attr varchar(50),--属性 
Seq int--流水号 
) 

获取流水号,通过存储过程:

create Proc GetSeq ( 
@attr varchar(50),
@year int, 
@month int, 
@Return int output ) 
As 
set @Return=(select top 1 Seq from tb_b_Seq where Attr=@attr and MONTH=@month and YEAR=@year) 
if(@Return is null) 
begin 
    set @Return=1 
    insert into FMDS_tb_b_Seq (Attr,Year,Month,Seq) values (@attr,@year,@month,@Return) 
end 
else 
begin 
    set @Return=@Return+1 
    update FMDS_tb_b_Seq set Seq=@Return where Attr=@attr and MONTH=@month and YEAR=@year 
end

 测试: 

declare @ret int 
exec GetSeq 'Contract',2017,10,@ret 
print @ret
原文地址:https://www.cnblogs.com/lcawen/p/7660716.html