Cómo agrupar relaciones jerárquicas en SQL Server

Tengo un nombre de columnaPadr yNiñ en mesaEjempl y debajo están los datos de la tabla

|     Parent          |     Child        |
|---------------------|------------------|
|      100            |      101         |
|---------------------|------------------|
|      101            |      102         |
|---------------------|------------------|
|      200            |     201          |
|---------------------|------------------|
|      103            |      102         |
|---------------------|------------------|
|      202            |      201         |
|---------------------|------------------|

Si doy la entrada como 100 debería obtener el resultado como 100,101,102,103 Ya que 100-> 101-> 102-> 103 y también si doy la entrada como 102 entonces debería dar el mismo resultado anterior. @ 102-> 101-> 100 y 102-> 103. Necesito lograr esto usando solo el Procedimiento almacenado.

Abajo está el código de muestra que estoy intentando

CREATE PROCEDURE GetAncestors(@thingID varchar(MAX))
AS
BEGIN
SET NOCOUNT ON;

WITH
CTE
AS
(
    SELECT
        Example.Parent, Example.Child
    FROM Example
    WHERE Parent = @thingID or Child = @thingID 

    UNION ALL

    SELECT
        Example.Parent, Example.Child
    FROM
        CTE
        INNER JOIN Example ON Example.Parent = CTE.Child
)
SELECT
    Parent AS Result
FROM CTE

UNION

SELECT
    Child AS Result
FROM CTE
;

END
GO

Respuestas a la pregunta(3)

Su respuesta a la pregunta