sql server 日期+数字生成编号

CREATE  PROCEDURE [dbo].[prGet_NewNo]
@NEW_ID VARCHAR(11) OUTPUT

AS
BEGIN
    DECLARE @CurrDate VARCHAR(8);

    --当前日期 20100619
    SET @CurrDate = CONVERT(VARCHAR(8),GETDATE(),112)
    --取出表中当前日期的已有的最大ID
    SET @NEW_ID = NULL;
    SELECT TOP 1 @NEW_ID = [ID] FROM my_TableWHERE [ID] LIKE @CurrDate+'%' ORDER BY [ID] DESC
    IF @NEW_ID IS NULL
        SET @NEW_ID = (@CurrDate+'001')
    ELSE
    BEGIN
        DECLARE @NUM VARCHAR(8)

        --取出最大的编号加上1
        SET @NUM = CONVERT(VARCHAR, (CONVERT(INT, RIGHT(@NEW_ID, 3)) + 1))
        --因为经过类型转换,丢失了高位的0,需要补上
        SET @NUM = REPLICATE('0', 3 - LEN(@NUM)) + @NUM
        --最后返回日期加编号
        SET @NEW_ID = @CurrDate + @NUM
    END
END
GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值