誰が実行しても従業員 ID を提供することを期待するスクリプトを作成するように依頼されました。指定された従業員が任意の深さで監督するすべての従業員を見つけます。
私のコードは次のとおりです。
CREATE FUNCTION [dbo].[GetNames] (@V uniqueidentifier)
RETURNS @OldNames TABLE (EMP_NAME varchar(50))
AS
BEGIN
DECLARE @master uniqueidentifier
SET @master=(SELECT EMP_Supervisor FROM Employee WHERE EMP_ID=@v)
IF @master=NULL return
INSERT INTO @OldNames(EMP_NAME)
SELECT (SELECT EMP_NAME FROM Employee WHERE EMP_ID = @master)
FROM Employee
UNION
SELECT EMP_NAME FROM GetNames(@master)
RETURN
END
そして、それが機能するかどうかを確認したいときは、これを実行します:
SELECT * from GetNames('561e2d88-a747-460f-99e1-cfb1d3d8ca5c')
ここで、「561e2d88-a747-460f-99e1-cfb1d3d8ca5c」は従業員の ui であり、例外としてこれを取得します。
ストアド プロシージャ、関数、トリガー、またはビューの最大ネスト レベルを超えました (制限 32)。
手伝ってくれませんか?前もって感謝します!!