查表法按日期生成流水號 mssql

2021-06-14 16:33:40 字數 1042 閱讀 8258

--以下**生成的編號長度為12,前6位為日期資訊,格式為yymmdd,後6位為流水號。

--建立得到當前日期的檢視

create view v_getdate

asselect dt=convert(char(6),getdate(),12)

go--得到新編號的函式

create function f_nextbh()

returns char(12)

asbegin

declare @dt char(6)

select @dt=dt from v_getdate

return(

select @dt+right(1000001+isnull(right(max(bh),6),0),6)

from tb with(xlock,paglock)

where bh like @dt+'%')

endgo

--在表中應用函式

create table tb(

bh char(12) primary key default dbo.f_nextbh(),

col int)

--插入資料

insert tb(col) values(1)

insert tb(col) values(2)

insert tb(col) values(3)

delete tb where col=3

insert tb(col) values(4)

insert tb(bh,col) values(dbo.f_nextbh(),14)

--顯示結果

select * from tb

/*--結果

bh col

------------------- -----------

050405000001 1

050405000002 2

050405000003 4

050405000004 14

--*/

查表法生成流水號的示例 sql

下面的 生成長度為8的編號,編號以bh開頭,其餘6位為流水號。得到新編號的函式 create function f nextbh returns char 8 asbegin return select bh right 1000001 isnull right max bh 6 0 6 from ...

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 s...

php生成流水號

function createn i else if i 100 else if i 1000 else echo substr 2012050010 0,6 echo createn 2 2 echo createn 9 9 echo createn 10 10 echo createn 11 1...