2010-12-03 62 views
1

我有一個典型的員工自引用表。SQL Server 2005 UDF創建一個表數據類型的自引用表數據

你怎麼能建立一個UDF返回一個表中的數據類型,它可以在其他查​​詢中使用加入到這樣,我通過UDF在表中的用戶的id並獲得該用戶的id結果和所有用戶通過managerId鏈接到他?

我的表是EmployeeId, ManagerID, Name ....

所有我需要的是傳遞一個EmployeeId和獲得的所有記錄誰是ManagerID遞歸結果的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 
) 
相關問題