2010-12-03 15 views
1

従業員の典型的な自己参照テーブルがあります。自己参照テーブルデータのテーブルデータ型を作成するためのSQL Server 2005 UDF

他のクエリで使用することができるテーブルデータ型を返すようにUDFを構築すると、テーブルのユーザーのidというUDFを渡して、そのユーザーのidの結果を取得できます。すべてのユーザーがmanagerId経由で彼にリンクしていますか?

私が持っている表がEmployeeId, ManagerID, Nameです....

私は必要なすべてがEmployeeIdを渡し、ManagerIDだすべてのレコードの再帰的な結果はのparamに渡されたのIDで、レコードのいずれかを取得することです...ように

おかげ

答えて

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 
) 
を管理者としてこれらを持っており、その
関連する問題