با سلام این کد SP مربوطه :
CREATE PROCEDURE [dbo].[Register_MMT_Server]
(
@Register_Typ TINYINT , -- 0 -> University 1 -> Center & Hospital
@Univer_ID TINYINT ,
@Center_Code SMALLINT ,
@Name NCHAR(25) ,
@Last_Name NCHAR(45) ,
@Father_Name NCHAR(25) ,
@Sh_Sh NCHAR(12) ,
@Birth_Date NCHAR(4) ,
@Orginal_Name NCHAR(255) ,
@Orginal_Famil NCHAR(255) ,
@Orginal_Father NCHAR(255) ,
@National_Id NCHAR(12) ,
@Date_Post NCHAR(10)
)
AS
BEGIN
DECLARE @New_Code BIGINT
SET @New_Code = ( SELECT [MMT].[dbo].[Return_Inquiry_NewCode](@Univer_ID,
@Center_Code)
)
SET NOCOUNT ON
IF ( @New_Code IS NULL )
OR ( @New_Code <= 0 )
BEGIN
SELECT 0
RETURN 0
END
IF ( @New_Code IS NOT NULL )
AND ( @New_Code > 0 )
BEGIN
IF NOT EXISTS ( SELECT TOP 1
Sicker_Code
FROM dbo.MMT_Person
WHERE Sicker_Code = @New_Code )
BEGIN
INSERT INTO dbo.MMT_Person
( Univer_ID ,
Center_Code ,
Sicker_Code ,
National_Code ,
Name ,
Last_Name ,
Father_Name ,
Sh_Sh ,
Birth_Date ,
Orginal_Name ,
Orginal_Famil ,
Orginal_Father ,
Date_Post
)
VALUES ( @Univer_ID ,
@Center_Code ,
@New_Code ,
@National_Id ,
@Name ,
@Last_Name ,
@Father_Name ,
@Sh_Sh ,
@Birth_Date ,
@Orginal_Name ,
@Orginal_Famil ,
@Orginal_Name ,
@Date_Post
)
DECLARE @IDen BIGINT
Select @IDen = @@IDENTITY
END
ELSE
BEGIN
SELECT 0
RETURN 0
END
END
SET NOCOUNT OFF
Select @New_Code
END
این کد Func مربوط به Max جدول 1000 :
CREATE FUNCTION [dbo].[Return_Inquiry_NewCode]
(
@Univer_Id TINYINT ,
@Center_Code SMALLINT
)
RETURNS BIGINT
AS
BEGIN
DECLARE @NewID BIGINT
DECLARE @Mx BIGINT
SELECT @Mx = MAX(Sicker_Code)
FROM MMT.dbo.MMT_Person
WHERE Univer_ID = @Univer_Id
AND Center_Code = @Center_Code
IF @Mx IS NULL
SET @NewID = 100000
ELSE
SET @NewID = (@Mx + 1)
RETURN @NewID
END