我有兩個冗餘代碼的存儲過程。 SP將根據所選表格而有所不同。我想結合這兩個SP。請幫忙。結合SQL Server中的兩個SPP
主要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 ..........
第二個存儲過程是:
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的價值,我打電話第二SP。但是,存儲過程中的select語句,連接條件和where條件保持不變。我需要刪除冗餘代碼。請幫忙。
我認爲它應該是'UNION';它將幫助刪除重複項。 – Tebo 2013-03-19 08:17:51
@Damien:例如,如果該函數只返回12行,僱員表有5000行,並假設如果我需要單獨的函數輸出(考慮第二個SP),那麼在這種情況下,它也會返回來自兩者的所有行條件,它會失敗吧? – 2013-03-19 08:27:09
@ColourBlend - WHERE條款是互斥的。 – 2013-03-19 08:35:04