--以下**生成的編號長度為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...