自动生成编号的方法

前言:
用过许多序号的方法,indentity 或 new id() ,都不好用,自己写了一个,这个序号的特点是:每次取相应表中的系统当天最大序号,如果当天无记录,则自动生成一个当天序号

1.建种子表,这个表用来保存各个表目前已使用到的最大序号
--种子表
create table SEED (
BM varchar(20) not null, --表名
BH varchar(12) not null, --种子编号
constraint PK_SEED primary key(BM)
)
go

2.当我们建一个新表时,同时把这个表名记录到种子表中,如:
--向种子中表添加记录
insert into SEED (BM,BH) values('tablename','200211070000')
go

3.在数据库建一存储过程,自动生成新编号,此编号取当天时间,所以许多时候查询某些天的记录时,这个序号非常有用
--为参数传递来的某个表自动生成编号
if exists (select * from sysobjects where name='proc_getbh')
drop procedure proc_getbh
go
create procedure proc_getbh @BM varchar(20)
as
declare @BH char(12)
declare @TODAY char(8)
begin
select @TODAY=convert(char(8),getdate(),112)
select @BH=BH from SEED where BM=@BM
if @BH is null or left(@BH,8)<>@TODAY
begin
select @BH=@TODAY+'0000'
end
select @BH=left(@BH,8)+ right('0000' + ltrim(convert(char(4),convert(int,right(@BH,4)))+1),4)
update SEED set BH=@BH where BM=@BM
select @BH AS BH
end

4.实例如下:
'对表xxx自动生成新编号
set rs=conn.execute("proc_getbh @BM='xxx'")
这样,rs("BH")就是你得到的新编号

时间: 2024-12-02 23:13:35

自动生成编号的方法的相关文章

关于我的自动生成编号的方法(来这么久,第一次写个人的编程技巧,不知能不能上精华)

编程|技巧|精华 前言:    用过许多序号的方法,indentity 或 new id() ,都不好用,自己写了一个,这个序号的特点是:每次取相应表中的系统当天最大序号,如果当天无记录,则自动生成一个当天序号 1.建种子表,这个表用来保存各个表目前已使用到的最大序号--种子表create table SEED (BM  varchar(20) not null,   --表名BH   varchar(12) not null,   --种子编号constraint PK_SEED primar

ASP自动生成编号的方法

用过许多序号的方法,indentity 或 new id() ,都不好用,自己写了一个,这个序号的特点是:每次取相应表中的系统当天最大序号,如果当天无记录,则自动生成一个当天序号. 1.建种子表,这个表用来保存各个表目前已使用到的最大序号 --种子表 create table SEED ( BM varchar(20) not null, --表名 BH varchar(12) not null, --种子编号 constraint PK_SEED primary key(BM) ) go 2.

php根据数据id自动生成编号的实现方法_php实例

如下所示: <strong><span style="font-size:18px;">/*编号=年份后两位+月份+id四位数*/ $id = $this->student_model->save(0, $data); $sn = date('Y', time()); $sn = substr($sn, -2); $sn.= date('m', time()); $sn.=sprintf("%04d", $id);</spa

Word 2013中使用键入时自动套用格式功能时生成编号的方法

在Word2013文档中,用户可以借助"键入时自动套用格式"功能,在直接输入数字的时候自动生成编号.用户首先需要启用自动编号列表自动套用选项,自动生成编号的步骤如下所述: 第1步,打开Word2013文档窗口,依次单击"文件"→"选项"按钮,如图2013102901所示. 图2013102901 单击"选项"按钮 第2步,在打开的"Word选项"对话框中切换到"校对"选项卡,在"

Word2013中“键入时自动套用格式”生成编号的方法

  在Word2013文档中,用户可以借助"键入时自动套用格式"功能,在直接输入数字的时候自动生成编号.用户首先需要启用自动编号列表自动套用选项,自动生成编号的步骤如下所述: 第1步,打开Word2013文档窗口,依次单击"文件"→"选项"按钮,如图1所示. 图1 单击"选项"按钮 第2步,在打开的"Word选项"对话框中切换到"校对"选项卡,在"自动更正选项"区域单

SQLServer中一个多用户自动生成编号的过程

server|sqlserver|过程 SQLServer中一个多用户自动生成编号的过程 if not exists (select * from dbo.sysobjects where id = object_id(N'[IndexTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)create table IndexTable(Ex char(20), num integer) go create procedure SetIndex @

看实例学VFP:向数据表中添加记录时自动生成编号

本例在"看实例学VFP:向数据表中添加记录并验证输入数据是否合法"的基础上进行了改进,实现了在添加记录时不仅能够完成对输入数据的校验,还具有自动生成编号的功能.自动生成编号的相关代码加在表单的init事件及"添加"按钮的click中,在表单第一次启动或添加完记录后都会调用此段代码,实现自动生成编号的功能.运行界面如下: 本例用到了"数据1"数据库中的"网站信息表",关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出,

php实现根据url自动生成缩略图的方法

  本文实例讲述了php实现根据url自动生成缩略图的方法,是非常实用的功能.分享给大家供大家参考.具体方法如下: 原理 :设置apache rewrite ,当图片不存在时,调用php创建图片. 例如: 原图路径为:http://localhost/upload/news/2013/07/21/1.jpg 缩略图路径为:http://localhost/supload/news/2013/07/21/1.jpg 当访问 http://localhost/supload/news/2013/07

自动编码-无对象表定义的窗口如何自动生成编号

问题描述 无对象表定义的窗口如何自动生成编号 我做了一个是对应无对象表的窗口,但是编号要自己手动打,如何能实现自动生成编号呢,换一行就自动生成一个