冗長コードのストアド プロシージャが 2 つあります。SP は、選択元のテーブルによって異なります。この 2 つの SP を組み合わせたいと思います。助けてください。
主な SP は次のとおりです。
CREATE PROCEDURE [dbo].[spGetEmployeesBySearchString]
-------------
-------------
@OtherListType_ID INT
@manager_employee_number VARCHAR(255)
-------------
-------------
DECLARE @IsGetFullTeamUnderManager bit=0
IF (@OtherListType_ID=3 AND @manager_employee_number IS NOT NULL)
SET @IsGetFullTeamUnderManager = 1
IF (@IsGetFullTeamUnderManager=1)
BEGIN
EXEC spFullTeamUnderManager <<Parameters>>
RETURN
END
SELECT e.a,e.b,e.c,e.d,......
FROM Employee emp
INNER JOIN .....
WHERE ..........
2 番目のストアド プロシージャは次のとおりです。
CREATE PROCEDURE [dbo].[spFullTeamUnderManager]
-------------
-------------
-------------
SELECT e.a,e.b,e.c,e.d,......
FROM dbo.fnFullTeamUnderManager(@manager_employee_number) emp
INNER JOIN .....
WHERE ..........
メイン SP では、@OtherListType_ID の値に基づいて、2 番目の SP を呼び出しています。ただし、select ステートメント、join 条件、および where 条件は、両方のストアド プロシージャで同じままです。冗長なコードを削除する必要があります。助けてください。