Ich möchte die hierarchyId wie folgt einfügen
/ - CEO (Wurzel)
/ 1 / - Einkaufsmanager / 2 / - Verkaufsmanager
/ 1/1 / - Einkaufsleiter / 2/1 / - Verkaufsleiter
Das ist die Hierarchie, die ich verwenden möchte, ist es richtig, wenn ja, wie kann ich das tun, kann mir jemand ein Code-Snippet geben.
Ich bin bei der Suche nach Informationen zum Datentyp hierarchyid
auf diese Frage gestoßen und dachte, dass es für jeden anderen, der nach mir kommt, interessant wäre, auch Code zum Einfügen von hierarchyid
s nach der Frage zu sehen.
Ich behaupte nicht, dass dies die einzige Möglichkeit ist, hierarchyid
s einzufügen, aber hoffentlich wird es denjenigen helfen, die wie ich keine Erfahrung mit diesem Datentyp haben.
Verwenden Sie diese Tabelle,
%Vor% Sie können Parse verwenden, um hierarchyid
s direkt über die Zeichenfolgenpfade einzufügen:
und verwenden Sie die folgende Abfrage, um die Tabelle
zu überprüfen %Vor% Sie können auch die Datenmethoden hierarchyid
GetRoot und GetDescendant um die Hierarchie zu erstellen. Ich fand diese Methode umständlicher, aber ich denke, diese Methoden sind notwendig, wenn Sie die Hierarchie programmatisch verwalten.
Überprüfen Sie auf jeden Fall die Links in der anderen Antwort, aber hoffentlich wird auch dieser Code zum Ausprobieren hilfreich sein.
Angenommen, Sie haben ein Tabellenschema mit einem Self-Join (wie unten gezeigt) und die ManagerID Ihres CEO ist NULL.
%Vor%Sie können eine erste Menge von hierarchyid-Werten mithilfe des folgenden rekursiven CTE automatisch generieren:
%Vor%Es wird dann zu einer ziemlich trivialen Angelegenheit, der Tabelle eine hierarchyid-Spalte hinzuzufügen, einen Index hinzuzufügen und sie dann durch Verbinden mit der temporären Tabelle aufzufüllen.
%Vor%Beachten Sie jedoch, dass, wenn Sie möchten, dass die hierarchyid-Daten nach dem Hinzufügen konsistent bleiben, es sehr spezielle Möglichkeiten gibt, wie diese beibehalten werden sollen.
Tags und Links sql sql-server-2008 hierarchical hierarchyid