建种子表这个表用来保存各个表目前已使用到的最大序号
——种子表
create table SEED (
BM varchar() not null 表名
BH varchar() not null 种子编号
constraint PK_SEED primary key(BM)
)
go
当我们建一个新表时同时把这个表名记录到种子表中如
——向种子中表添加记录
insert into SEED (BMBH) values(tablename)
go
在数据库建一存储过程自动生成新编号此编号取当天时间所以许多时候查询某些天的记录时这个序号非常有用
——为参数传递来的某个表自动生成编号if exists (select * from sysobjects where name=proc_getbh)
drop procedure proc_getbh
go
create procedure proc_getbh @BM varchar()
as
declare @BH char()
declare @TODAY char()
begin
select @TODAY=convert(char()getdate())
select @BH=BH from SEED where BM=@BM
if @BH is null or left(@BH)<>@TODAY
begin
select @BH=@TODAY+
end
select @BH=left(@BH)+ right( + ltrim(convert(char()convert(intright(@BH)))+))
update SEED set BH=@BH where BM=@BM
select @BH AS BH
end
实例如下
对表xxx自动生成新编号
set rs=connexecute(proc_getbh @BM=xxx)
这样rs(BH)就是你得到的新编号(aspcool)