zoukankan      html  css  js  c++  java
  • 使用编号表生成流水号的示例.sql

    --编号表
    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 --新编号
    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

    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
  • 相关阅读:
    SQLServer多表连接查询
    SQLServer基本查询
    SQLServer索引
    SQLServer之数据类型
    设计模式小结
    SQL跨项目查询语法
    利用CountDownLatch和Semaphore测试案例
    JUC包下Semaphore学习笔记
    JUC包下CountDownLatch学习笔记
    JUC包下CyclicBarrier学习笔记
  • 原文地址:https://www.cnblogs.com/shihao/p/2508606.html
Copyright © 2011-2022 走看看