儲存過程生成流水號

2021-06-03 15:44:43 字數 1232 閱讀 1260

格式如a20110915001,第1位寫死a,2-5位為年,6-7位為月,8-9位為日,最後三位為流水號.

declare @newvalue varchar(12)

declare @newcode varchar(3)

declare @oldcode varchar(3)

declare @oldyearmonthday varchar(9)

declare @newyearmonthday varchar(9)

set @newyearmonthday = convert(varchar(8), getdate(), 112)

set @newyearmonthday ='r'+@newyearmonthday

select @oldvalue = pvalue from parameter with (rowlock) where pname='program_batch_id' and pactive='y'

set @oldyearmonthday = substring(@oldvalue,1,9)

set @oldcode = substring(@oldvalue,10,3)

if @newyearmonthday = @oldyearmonthday--如果新的年月日編號與舊的相同

begin

-- 舊序號+1

set @newcode = cast(cast(@oldcode as int)+1 as varchar(3))

while len(@newcode)<3

begin

set @newcode = '0' + @newcode

endset @newvalue = @oldyearmonthday + @newcode

endelse--採用新的年月編號,序號從"001"開始

begin

set @newcode = '001'

set @newvalue = @newyearmonthday + @newcode

endbegin transaction           --開始事務

update parameter with (rowlock) set pvalue = @newvalue  where pname='program_batch_id' and pactive='y'

if @@error > 0

rollback

else

commit

endgo

流水號工單號生成 儲存過程

1.生成格式 工單型別 日期 四位流水號 例如 1101 20100517 1104 儲存過程 create procedure dbo cs spcreateformkey asdeclare currentmaxid char 4 id char 4 begin set nocount on s...

流水號生成儲存過程(sqlserver版)

首先要有乙個制定流水號規則的表 create table serial rul id int primary keyidentity,id自增 pre varchar 10 字首,可以是公司標識或者是某產品標識之類的 daterule varchar 8 中間時間串,取當天的年月日 yyyymmmd...

mysql 生成流水號 儲存過程 訂單編號

用儲存過程生成流水號是很常用的,這裡以生成訂單編號的流水號作為示例。新的一天的流水號從1開始,如 今天的訂單編號是cd20130109 00014,下乙個訂單編號將是cd20130109 00015 明天的訂單編號將從cd20130110 00001開始 生成規則 2位字首 年月日 5位流水號 或者...