用SQL方法生成单据号

    技术2022-05-11  52

    SQL中自動生成單據號的做法 :如:傳入122,2333會生成:06AGAH00012206AGAH002333(注意:碼長一致性)--找帐套字头号 DECLARE @IH char(1) --SELECT @IH = LEFT(IncID,1) FROM accounts WHERE ID = @Incom set @IH = 'E'--编号年月部分 DECLARE @YM char(6) SET @YM = CONVERT(char(6),GETDATE(),12) --单据字头 DECLARE @DJHH char(8) SET @DJHH = @IH + 'E' + @YM DECLARE @MNO INT        --当天最大的单据号(数值) SET @MNO = 33333--select TOP 1 @MNO = CONVERT(int,RIGHT(DJH,4))+1 from Orders where left(DJH,8) = @DJHH and incom = @Incom Orders by DJH desc DECLARE @DJH char(12) --扩充成4位十进制编号(最大可显示9999) print  @MNOIF @MNO < 9999   IF @MNO < 999     IF @MNO < 99       IF @MNO < 9         SET @DJH = @DJHH + '000' + CONVERT(char(1),@MNO)       ELSE         SET @DJH = @DJHH + '00' + CONVERT(char(2),@MNO)     ELSE       SET @DJH = @DJHH + '0' + CONVERT(char(3),@MNO)   ELSE     SET @DJH = @DJHH + CONVERT(char(4),@MNO) ELSE   SET @DJH = @DJHH + '9999' print  @DJH 


    最新回复(0)