zoukankan      html  css  js  c++  java
  • SQL存储过程生成流水号

    首先在数据库中创建一个存放流水号的表

    CREATE TABLE [dbo].[NumSeq]
    (
       
    [Cate] [varchar] (2NOT NULL
    ,
       
    [DateNo] [varchar] (4NOT NULL
    ,
       
    [Seq] [int] NULL
    ,
       
    [CrTime] [datetime] NOT NULL

    )
    上面的代码中,Cate 字段为流水号的头,可以在下面的存储过程中用参数的方式传入,我的定义是2个字符,这个可以根据具体需要更改
                
    DateNo 字段为获取日期信息
                 Seq 字段为流水号,但最终生成的流水号是这三个字段的相加

    2,创建存储过程

    CREATE  PROC dpPMT_SGetMaintainSeq
    @MaintainCate
    VARCHAR(2
    )

    AS

    --***********************累加编号*************************************************
    DECLARE
    @MaintainNo VARCHAR(12
    )
    IF NOT EXISTS(SELECT

               
    *

           
    FROM
                
    NumSeq
           
    WHERE
                
    Cate
    =@MaintainCate
    AND
    DATEDIFF(DAY,CrTime,GETDATE())=0
    )
       
    BEGIN

           
    INSERT
    INTO

                
    NumSeq(Cate,DateNo,Seq)
           
    values(@MaintainCate,RIGHT(CONVERT(VARCHAR(4),YEAR(GETDATE())),2)+REPLICATE('0',2-LEN(MONTH(GETDATE())))+CONVERT(VARCHAR(2),MONTH(GETDATE())),0
    )

       
    END

    ELSE
       
    BEGIN
           
    UPDATE
                
    NumSeq
           
    SET
                
    Seq
    =Seq+1

           
    WHERE
                
    Cate
    =@MaintainCate
    AND
    DateNo
    =RIGHT(CONVERT(VARCHAR(4),YEAR(GETDATE())),2)+REPLICATE('0',2-LEN(MONTH(GETDATE())))+CONVERT(VARCHAR(2),MONTH(GETDATE
    ()))
       
    END


    --************************组合编号***************************************************************
    SELECT
       
    @MaintainNo=Cate+DateNo+REPLICATE('0',6-LEN(Seq))+CONVERT(VARCHAR(6
    ),Seq)
    FROM

        
    NumSeq
    WHERE
        
    Cate
    =@MaintainCate
    AND
    DateNo
    =RIGHT(CONVERT(VARCHAR(4),YEAR(GETDATE())),2)+REPLICATE('0',2-LEN(MONTH(GETDATE())))+CONVERT(VARCHAR(2),MONTH(GETDATE
    ()))

    SELECT @MaintainNo

    这个存储过程最终输出的结果如:AA071031000001
    前面两位是传入的参数,中间四位是年份的后两位和月,最后的六位为6位数字的流水号。您也可以修改上面的存储过程来生成符合您要求的流水号
  • 相关阅读:
    iOS iOS与html进行交互
    2. SwiftUI学习之_padding1()
    基础知识 1. 设计模式是什么?你知道哪些设计模式,请简要叙述?
    swift 5.0富文本
    ios 本地化
    ios报错:nw_protocol_get_quic_image_block_invoke dlopen libquic failed
    IOS开发没有开发者账号也可以进行测试
    swift项目中新的字体如何加入
    TestFlight用法 包教包会(iOS APP官方测试工具)
    IOS FMDB的使用
  • 原文地址:https://www.cnblogs.com/tianxiang2046/p/2579835.html
Copyright © 2011-2022 走看看