我被要求创建脚本,希望运行它的人提供员工 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 ”是员工的用户界面,我认为这是一个例外:
超出最大存储过程、函数、触发器或视图嵌套级别(限制 32)。
你能帮我么?提前致谢!!