格式如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位流水號 或者...