Проверьте это . Он использует рекурсивную процедуру хранения, поэтому уровень ссылки будет ограничен.
Нерекурсивный вызов процедуры хранения решение .
С SQL2005 вы можете использовать рекурсивные запросы с использованием общих табличных выражений:
WITH Report(Supervisorid , Empid , Title, Level)
AS
(
-- Anchor member definition
SELECT e.Supervisorid , e.Empid , e.Title, 0 AS Level
FROM dbo.MyEmployees AS e
WHERE Supervisorid = 3
UNION ALL
-- Recursive member definition
SELECT e.Supervisorid , e.Empid , e.Title, Level + 1
FROM dbo.MyEmployees AS e
INNER JOIN Report AS d
ON e.Supervisorid = d.Empid
)
-- Statement that executes the CTE
SELECT Supervisorid , Empid , Title, Level
FROM Report;