SQL中自動生成單據號的做法 :
如:
傳入122,2333
會生成:
06AGAH000122
06AGAH002333
(注意:碼長一致性)
--找帐套字头号
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 @MNO
IF @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
用SQL方法生成单据号
最新推荐文章于 2022-11-12 11:27:53 发布