Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Löschen hierarchischer Daten in einer SQL-Tabelle

Auf SQL Server:Verwenden Sie eine rekursive Abfrage. Verwenden Sie bei gegebenem CREATE TABLE tmp(Id int, Parent int)

WITH x(Id) AS (
    SELECT @Id
    UNION ALL
    SELECT tmp.Id
      FROM tmp
      JOIN x ON tmp.Parent = x.Id
)
DELETE tmp
  FROM x
  JOIN tmp ON tmp.Id = x.Id