--編號表
create table tb_no(
name char(2) primary key, --編號種類的名稱
head nvarchar(10) not null default '', --編號的字首
currentno int not null default 0, --當前編號
bhlen int not null default 6, --編號數字部分長度
description nvarchar(50)) --編號種類說明
insert tb_no select 'cg','cg',0,4,n'採購訂單'
union all select 'cj','cj',0,4,n'採購進貨'
union all select 'jc','jc',0,4,n'進倉單'
union all select 'zc','zc',0,4,n'轉倉單'
union all select 'cc','cc',0,4,n'出倉單'
go--獲取新編號的儲存過程
create proc p_nextbh
@name char(2), --編號種類
@bh nvarchar(20) output --新編號
asbegin tran
update tb_no with(rowlock) set
@bh=head+right(power(10,bhlen)+currentno+1,bhlen),
currentno=currentno+1
where name=@name
commit tran
go--獲取 cj 的新編號
declare @bh char(6)
exec p_nextbh 'cj',@bh out
select @bh
--結果: cj0001
exec p_nextbh 'cj',@bh out
select @bh
--結果: cj0002
go--獲取 cc 的新編號
declare @bh char(6)
exec p_nextbh 'cc',@bh out
select @bh
--結果: cc0001
exec p_nextbh 'cc',@bh out
select @bh
--結果: cc0002
使用編號表按日期生成流水號的示例 sql
編號表 create table tb no name char 2 not null,編號種類的名稱 days int not null,儲存的是該種編號那一天的當前編號 head nvarchar 10 not null default 編號的字首 currentno int not null ...
SQL生成 日期 流水號 的編號
以下 生成的編號長度為12,前6位為日期資訊,格式為yymmdd,後6位為流水號。建立得到當前日期的檢視 create view v getdate asselect dt convert char 6 getdate 12 go 得到新編號的函式 create function f nextbh ...
mysql 生成流水號 儲存過程 訂單編號
用儲存過程生成流水號是很常用的,這裡以生成訂單編號的流水號作為示例。新的一天的流水號從1開始,如 今天的訂單編號是cd20130109 00014,下乙個訂單編號將是cd20130109 00015 明天的訂單編號將從cd20130110 00001開始 生成規則 2位字首 年月日 5位流水號 或者...