SQL Server 2005 UDF per fare una tabella di dati di tipo di dati della tabella di auto riferimento
-
30-09-2019 - |
Domanda
Ho un tipico tavolo autoreferenziale di dipendenti.
Come si può costruire un'UDF per restituire una tabella di dati di tipo che possono essere utilizzati in altre query di aderire a tale passo l'UDF un id
di un utente nella tabella e ottenere un risultato di id
di quell'utente e tutti gli utenti collegati a lui tramite un managerId
?
La tabella che ho è EmployeeId, ManagerID, Name
....
Tutto quello che serve è quello di passare un EmployeeId
e ottenere un risultato ricorsiva di tutti i record che è in ManagerID
è l'id del passato in param, e nessuno dei record che hanno questi come manager, e così via ...
grazie
Soluzione
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
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow