2010-12-03 6 views
1

J'ai un tableau d'auto-référence typique des employés.SQL Server 2005 UDF pour créer une table type de données de table auto-référence

Comment pouvez-vous construire une UDF pour retourner un tableau de données de type qui peut être utilisé dans d'autres requêtes à se joindre à ce que je passe l'UDF une id d'un utilisateur dans la table et obtenir un résultat de id de cet utilisateur et tous les utilisateurs liés à lui via un managerId?

Le tableau est je EmployeeId, ManagerID, Name ....

Tout ce que je besoin est de passer un EmployeeId et obtenir un résultat récurrent de tous les dossiers qui est ManagerID est l'id du passé dans param, et l'un des dossiers qui ont ces en tant que gestionnaires, et ainsi de suite ...

grâce

Répondre

1
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 
) 
Questions connexes