Si no quieres manejar recursividad en la ayuda de SQL Server viene un ejemplo de como expandir jerarquias..
en ingles lo encuentras como
hierarchical information.
Te anexo el codigo...para mayor referencia checalo en la ayuda..
Código:
CREATE PROCEDURE expand (@current char(20)) as
SET NOCOUNT ON
DECLARE @level int, @line char(20)
CREATE TABLE #stack (item char(20), level int)
INSERT INTO #stack VALUES (@current, 1)
SELECT @level = 1
WHILE @level > 0
BEGIN
IF EXISTS (SELECT * FROM #stack WHERE level = @level)
BEGIN
SELECT @current = item
FROM #stack
WHERE level = @level
SELECT @line = space(@level - 1) + @current
PRINT @line
DELETE FROM #stack
WHERE level = @level
AND item = @current
INSERT #stack
SELECT child, @level + 1
FROM hierarchy
WHERE parent = @current
IF @@ROWCOUNT > 0
SELECT @level = @level + 1
END
ELSE
SELECT @level = @level - 1
END -- WHILE
Edit:
En esta liga tambien lo podras encontrar...
Cómo mostrar Expandir jerarquías mediante SQL Server
Saludos!