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
