从默认是00001开始每增加一条信息自增1?
跪求,SQL中

解决方案 »

  1.   


    插入前,获取最后一条的编号,用程序加1后获取要新增行的编号,再执行insert语句.
      

  2.   


    ALTER       function get_cltbdNextno(@date datetime)
    returns varchar(20)
    as
    begin
    DECLARE @YEAR VARCHAR(2)
    DECLARE @MONTH VARCHAR(4)
    DECLARE @DAY VARCHAR(2)
    DECLARE @NEWNO VARCHAR(20)
    --取得年
    SET @YEAR=SUBSTRING(CONVERT(VARCHAR(4),YEAR(@date)),3,2)
    --取得月
    IF LEN(CONVERT(VARCHAR(4),MONTH(@date)))>1
    SET @MONTH=CONVERT(VARCHAR(4),MONTH(@date))
    ELSE
    SET @MONTH='0'+CONVERT(VARCHAR(4),MONTH(@date))
    --取得日
    IF LEN(CONVERT(VARCHAR(4),day(@date)))>1
    SET @DAY=CONVERT(VARCHAR(4),day(@date))
    ELSE
    SET @DAY='0'+CONVERT(VARCHAR(4),day(@date))
    SELECT @NEWNO=MAX(退补临时单号) FROM 材料退补单 
    WHERE SUBSTRING(退补临时单号,1,2)=@YEAR AND SUBSTRING(退补临时单号,3,2)=@MONTH
    IF @NEWNO IS NULL
    SET @NEWNO=@YEAR+@MONTH+@day+'001'
    ELSE
    SET @NEWNO=@YEAR+@MONTH+@day+RIGHT('000000'+CONVERT(VARCHAR, CONVERT(BIGINT,SUBSTRING(@NEWNO,5,3))+1),3)
    return @newno+'-B'
    end
    //调用 select dbo.get_cltbdNextno(getdate())
    自动取得下一个编号