¿Eliminar las mismas filas de varias columnas de referencia de forma segura?
Necesito encontrar todas las relaciones entre padres e hijos, que están todas vinculadas a mi columna principal ID
¿Cómo puedo eliminar las mismas columnas de referencia en la tabla? Digamos, por ejemplo, si quiero eliminar "Google", primero tengo que eliminar "HP" e Intel, también el hijo de HP.
He intentado lo siguiente hasta ahora, pero eso funciona con una sola columna.
WITH tb (id,Name, Level, Path, Parent)
AS
(
SELECT
id,Name, 1 AS Level,
CAST('/'+Name as nvarchar(max)) as Path,
CAST(NULL as nvarchar(max)) as Parent
FROM krishtest
WHERE parent1 IS NULL
UNION All
SELECT
e.id,e.Name, x.Level + 1 AS Level, x.Path + '/' + e.Name as Path,
REVERSE(SUBSTRING( REVERSE(x.[Path]) ,0 , CHARINDEX( '/', REVERSE(x.[Path])) )) as [Parent]
FROM krishtest e
JOIN tb x ON x.id = e.parent1
)
SELECT Name, Level, Path, Parent FROM tb
Mostrar la mejor respuesta