64 lines
2.3 KiB
Plaintext
64 lines
2.3 KiB
Plaintext
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
|
|
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Get_SY_MaxBH]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
|
|
drop procedure [dbo].[Get_SY_MaxBH]
|
|
GO
|
|
|
|
|
|
--功能:获得最大编号(无日期)
|
|
--著者:李
|
|
--exec Get_SY_MaxBH 'LJ','s1',8,'1'
|
|
create PROCEDURE Get_SY_MaxBH
|
|
@BHstr varchar(2),
|
|
@BHType varchar(20),
|
|
@Len int =3,
|
|
@status varchar(10)='0'
|
|
AS
|
|
begin
|
|
if @status='0'
|
|
begin
|
|
IF EXISTS (SELECT * FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType And Type='0')
|
|
BEGIN
|
|
UPDATE SY_MaxBH SET BHNo=BHNo+1 WHERE BHstr=@BHstr AND BHType=@BHType And Type='0'
|
|
SELECT MaxBH = rtrim(BHstr) + RIGHT(cast('1'+replicate('0',@Len) as int) + BHNo, @Len) FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType And Type='0'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT SY_MaxBH (BHstr, BHType, BHNo,Type) VALUES (@BHstr, @BHType,1,0)
|
|
SELECT MaxBH = rtrim(BHstr) + RIGHT(cast('1'+replicate('0',@Len) as int) + BHNo, @Len) FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType And Type='0'
|
|
END
|
|
end
|
|
else
|
|
begin
|
|
DECLARE @Date DATETIME
|
|
DECLARE @Datestr CHAR(6)
|
|
SET @Date = GETDATE()
|
|
SET @Datestr = RIGHT(YEAR(@Date) * 10000 + MONTH(@Date) * 100 + DAY(@Date), 6)
|
|
IF EXISTS (SELECT * FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType AND BHDate=@Datestr And Type='1')
|
|
BEGIN
|
|
UPDATE SY_MaxBH SET BHNo=BHNo+1 WHERE BHstr=@BHstr AND BHType=@BHType AND BHDate=@Datestr And Type='1'
|
|
SELECT MaxBH = rtrim(BHstr) + BHDate + RIGHT(cast('1'+replicate('0',@Len) as int) + BHNo, @Len) FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType And Type='1'
|
|
END
|
|
ELSE IF EXISTS (SELECT * FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType And Type='1')
|
|
BEGIN
|
|
UPDATE SY_MaxBH SET BHDate=@Datestr, BHNo=1 WHERE BHstr=@BHstr AND BHType=@BHType And Type='1'
|
|
SELECT MaxBH = rtrim(BHstr) + BHDate + RIGHT(cast('1'+replicate('0',@Len) as int) + BHNo, @Len) FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType And Type='1'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT SY_MaxBH (BHstr, BHType,BHDate, BHNo,type) VALUES (@BHstr, @BHType,@Datestr, 1,1)
|
|
SELECT MaxBH = rtrim(BHstr) + BHDate + RIGHT(cast('1'+replicate('0',@Len) as int) + BHNo, @Len) FROM SY_MaxBH WHERE BHstr=@BHstr AND BHType=@BHType And Type='1'
|
|
END
|
|
end
|
|
end
|
|
|
|
GO
|
|
SET QUOTED_IDENTIFIER OFF
|
|
GO
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
|