根据每天时间,不同类型,编号新的一天从0001开始
作者:互联网
如下
Create procedure [dbo].[SP_NumberingRule](
@HeadType nvarchar(50)
)
as
begin
--定义变量
declare @Puid varchar(50) --唯一uid
declare @i int
declare @Big varchar(100) --结尾自增编号 0001
declare @Date VARCHAR(100) --当前时间 八位数日期
declare @Letter varchar(100) --字母开头 DJBH
declare @Centretime varchar(100) --中间时间 20180110
declare @Dudate varchar(100) --赋值时间,使用
DECLARE @Mcount VARCHAR(50)
set @Date = CONVERT(varchar(8) , getdate(), 112 ) --当前时间
---开启事务
BEGIN TRAN
select top 1 @Puid = Uid, @Letter = CharacterFormat,@Dudate=StDatetime , @Big = DigitFormat,@Centretime= StDatetime , @Mcount = Conbination from BasicsManage B where B.name = @HeadType --获取编号规则
begin
--如果当前时间大于表中字段时间
if (@Date> @Dudate)
begin
set @i= rtrim(@Big) +1
set @Big= rtrim(@i) --编号从0000开始递增
set @Mcount = @Letter + @Date + right(REPLICATE('0',4) + rtrim(@Big),4)
UPDATE BasicsManage SET Conbination = @Mcount ,StDatetime = @Date where Uid = @Puid and Name = @HeadType
end
else
begin
print(@Mcount)
set @Big=rtrim(right(@Mcount,4)) +1 --原来基础上自增
set @Mcount = @Letter + @Date + right(REPLICATE('0',4) + rtrim(@Big),4)
UPDATE BasicsManage SET Conbination = @Mcount ,StDatetime = @Date where Uid = @Puid and Name = @HeadType
end
end
begin
commit tran; --执行成功将会添加数据
SELECT @Mcount
end
end
标签:varchar,0001,每天,--,Big,编号,Date,100,Mcount 来源: https://www.cnblogs.com/140510xcc/p/16070066.html