`

MSSQL 生成編號 --整理帖

阅读更多

-->Title:得到普通流水编号的函数
-->Author:wufeng4552
-->Date :2009-10-20
if object_id('tb','U')is not null drop table tb
if exists(select * from dbo.sysobjects where id=object_id(N'[dbo].[f_GetBH]')and xtype in(N'FN', N'IF', N'TF'))
drop function [dbo].[f_GetBH]
GO
create function f_GetBH()
returns varchar(8)
as
  begin
     return(select right(1000001+isnull(right(max(BH),6),0),6) from tb with (xlock,paglock) )
  end
go
--建表
create table tb(BH varchar(8) primary key default dbo.f_GetBH(),ID int)
insert tb(ID) select 1
insert tb(ID) select 2
insert tb(ID) select 3
delete tb where id=2
insert tb(ID) select 4
select * from tb
/*
BH       ID
-------- -----------
000001   1
000003   3
000004   4

*/

-->Title:得到日期编号的函数
-->Author:wufeng4552
-->Date :2009-10-20
if object_id('tb','U')is not null drop table tb
if exists(select * from dbo.sysobjects where id=object_id(N'[dbo].[f_GetRQBH]')and xtype in(N'FN', N'IF', N'TF'))
drop function [dbo].[f_GetRQBH]
GO
create function f_GetRQBH()
returns varchar(10)
as
  begin
     declare @dt varchar(6)
     select @dt=convert(varchar(6),getdate(),12)
     return
    (select @dt+right(1000001+isnull(right(max(BH),3),0),3) from tb with (xlock,paglock) where bh like @dt +'%')
  end
go
--建表
create table tb(BH varchar(10) primary key default dbo.f_GetRQBH(),ID int)
insert tb(ID) select 1
insert tb(ID) select 2
insert tb(ID) select 3
delete tb where id=2
insert tb(ID) select 4
select * from tb
/*
BH         ID
---------- -----------
091020001  1
091020003  3
091020004  4
*/
-->Title:使用编号表生成流水号
-->Author:wufeng4552
-->Date :2009-10-20
IF OBJECT_ID('TB_NO','U')IS NOT NULL DROP TABLE TB_NO
GO
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
IF OBJECT_ID('P_NEXTBH','P')IS NOT NULL DROP PROC P_NEXTBH
GO
CREATE PROC p_NextBH
@Name char(2),           --编号种类
@BH nvarchar(20) OUTPUT  --新编号
AS
BEGIN 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
*/

 

分享到:
评论

相关推荐

    mysql笔记.txt

    以上是根据给定文件信息整理出的MySQL关键知识点,涵盖了数据库的创建、使用、表的创建与查询、数据的插入与提交、自动增长字段的使用以及SQL脚本的执行方式等内容。这些知识点对于初学者来说非常实用,能够帮助他们...

    MySQL中常用命令整理【附命令列表】.doc

    ### MySQL中常用命令整理 在本文档中,我们将详细介绍MySQL中常用的命令及其应用场景,帮助读者更好地理解和掌握这些命令。MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),支持多种操作系统,如Windows...

    TXT数据库如何批量生成可变二维码.doc

    在批量生成二维码之前,首先需要将所有要编码的数据整理成TXT格式的文本文件。每行数据代表一个独立的二维码内容,可以包含汉字、字母、数字以及特殊字符。例如,产品名称、编号、价格等信息可以按行排列,确保数据...

    物流配送管理系统需求说明书

    - **交接单创建**:基于订单整理生成。 - **交接单审核**:确保交接信息无误。 - **交接单跟踪**:跟踪交接单的流转状态。 6. **报表管理** - **统计分析**:生成各类统计报表。 - **报表审核**:确保报表准确...

    JAVA数据库报告.docx

    - **数据库**:由于没有明确指出使用的数据库类型,可推测可能采用的关系型数据库有MySQL、Oracle或SQL Server等,这些数据库支持SQL标准,能够满足项目的功能需求。 #### 八、系统功能说明 - **人员管理**:录入...

    自整理Java关于基础和框架的面试题

    ### 自整理Java关于基础和框架的面试题 #### 基础知识点 ##### JDK常用的包 - **java.lang**: 包含所有基本类,如`String`、`Math`等。 - **java.util**: 提供集合框架、日期/时间设施、事件模型、杂项实用程序类...

    开题报告ssm577订餐管理系统+jsp开题+任务书.doc

    - **点菜系统**:用户可浏览菜品,添加至购物车,进行增删改查操作,下单后系统会生成订单编号。 - **评价功能**:用户可以对每个菜品进行评价,评价以五星制呈现,最终菜品的平均评分由用户评价的平均值计算得出...

    企业员工信息管理系统整理.pdf

    4. **系统开发环境**:通常,这样的系统会采用合适的开发工具和编程语言,例如Java、Python或.NET框架,配合数据库管理系统(如MySQL、Oracle或SQL Server)存储数据,可能还会使用一些前端开发工具如HTML、CSS和...

    cmd操作命令和linux命令大全收集

    copy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件 copy ipadmin$svv.exe c: 或:copyipadmin$*.* 复制...

    如何在Hive、MySQL、Oracle中分别添加自增序号

    最近公司业务涉及到了在相应库中添加自增序号这种操作,闲暇之余,整理如下,仅供参考~ 一、Hive  1、首先在Hive中建立一个测试表 create table xzw(id int, name string) clustered by (id) into 2 buckets ...

    Spring boot的学习文档。入门,详细整理

    1. **创建数据表**:在 MySQL 数据库中创建对应的用户表,包含用户编号、用户名和年龄字段。 2. **创建实体类**:根据数据库表结构创建 User 类,映射字段。 3. **创建 Mapper 接口**:定义与数据库交互的接口,使用...

    数据库知识整理,很详细完整,适合入门或者复习。

    序列是一种特殊的数据库对象,用于自动生成唯一编号,通常用于为主键字段提供值。 ##### 1. 创建序列 - **示例代码**: ```sql CREATE SEQUENCE seq_emp_id START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999 ...

    学生信息管理系统

    - **报表生成**:自动生成各类报表,如学生名单、课程表、成绩汇总等。 - **权限控制**:根据角色分配不同的操作权限,如教师只能查看和录入自己所教课程的成绩。 4. **技术栈选择** - **前端**:可以使用HTML、...

    202x年智慧图书馆服务平台建设方案(专业完整版).docx

    - **技术栈**:包括Vert.x(轻量级Java框架)、Elasticsearch(分布式搜索与分析引擎)、Apache Spark(高速统一的大数据分析引擎)、Spring(企业级Java应用开发框架)、MySQL(关系型数据库管理系统)、MongoDB...

    拱顶下沉记录表.doc

    - 数据表格:用于记录具体的测量数据,如测点编号、测量时间、水准尺读数、仪器高程、测点高度、实测温度、距离开挖面的距离等。 - 检查与签字:文档最后部分设有检查人员和技术主管的签字栏,确保数据的准确性和...

    如何快速的为现有数据库建立数据字典?

    例如,许多数据库管理工具(如MySQL Workbench, SQL Server Management Studio, Oracle SQL Developer)内置了元数据导出功能,能自动生成数据字典报告。 4. **源码分析**: 如果`MetadataCreator.java`是源代码,...

    基于JSP的自动排课管理系统设计与实现毕业设计(源代码+项目报告+开题报告).zip

    4. 教室管理:管理教室资源,如教室编号、容量、可用时间等。 5. 排课算法:系统核心,依据预设规则(如避免冲突、充分利用资源等)自动生成课表。 6. 课表展示:将生成的课表以直观、易读的形式展示给用户。 7. ...

    MF00802-图书图纸档案管理源码.zip

    1. 档案录入:录入档案的基本信息,如档案编号、创建日期、存档单位等。 2. 档案归档:按照一定的规则将档案进行整理和归档,方便存储和查找。 3. 档案检索:通过关键字、时间范围、档案类型等条件进行检索。 4. ...

    小型自选商场商品管理系统设计报告

    4. 数据分析:通过收集和整理销售、库存和进货数据,生成各类报表,帮助管理者识别销售趋势,优化商品结构,制定更有效的经营策略。 二、系统架构 1. 前端界面:用户友好的操作界面,包括销售终端、库存查询、进货...

Global site tag (gtag.js) - Google Analytics