SQL Server 2005 UDF, чтобы сделать таблицу данных данных о собственном виде данных

StackOverflow https://stackoverflow.com/questions/4347764

Вопрос

У меня есть типичная самосверенная таблица сотрудников.

Как вы можете создать UDF, чтобы вернуть тип данных таблицы, который можно использовать в других вопросах, чтобы присоединиться к такому, что я передаю UDF A id пользователя в таблице и получить результат этого пользователя id и все пользователи связаны с ним через managerId?

Стол у меня есть EmployeeId, ManagerID, Name....

Все, что мне нужно, это пройти EmployeeId и получить рекурсивный результат всех записей, которые ManagerID Является ли идентификатор пропущенного в параметрах, и любая из записей, которые имеют в качестве менеджеров, и так далее ...

Спасибо

Это было полезно?

Решение

CREATE FUNCTION GetEmployees  
(  
  @EmployeeId int
)
RETURNS TABLE 
AS
RETURN 
(
  WITH yourcte AS
  (
    SELECT EmployeeId, ManagerID, Name
    FROM Employees
    WHERE EmployeeId = @EmployeeId
    UNION ALL
    SELECT e.EmployeeId, e.ManagerID, e.Name
    FROM Employees e
    JOIN yourcte y ON e.ManagerID = y.EmployeeId
  )
SELECT EmployeeId, ManagerID, Name
FROM yourcte
)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top