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

Kopieren Sie das Adjazenzmodell

Das grundlegende Problem mit Adjazenzlisten besteht darin, dass es in SQL keine allgemeine Möglichkeit gibt, einen ganzen Unterbaum zu extrahieren, sodass Sie bereits ein Problem haben, alle Zeilen zu identifizieren, die Sie duplizieren müssen, ohne auf einen Cursor zurückzugreifen.

Wenn möglich, migrieren Sie Ihre Adjazenzliste in ein verschachteltes Mengenmodell, mit dem Sie alle Knoten eines Teilbaums leicht identifizieren können. Die Pflege eines verschachtelten Mengenmodells ist jedoch für allgemeine Einfügungen und Löschungen komplexer.

BEARBEITEN:Wie von 'a_horse_with_no_name' darauf hingewiesen, gibt es ist eine Möglichkeit in allgemeinem SQL Adjazenzlisten, rekursive allgemeine Tabellenausdrücke zu verarbeiten.