Ich bin bei der Suche nach Informationen über den Datentyp hierarchyid
auf diese Frage gestoßen und dachte, es wäre interessant für jeden anderen, der nach mir kommt, auch Code zum Einfügen von hierarchyid
s wie in der Frage zu sehen.
Ich behaupte nicht, dass dies die einzigen Möglichkeiten sind, hierarchyid
s einzufügen, aber hoffentlich wird es denjenigen helfen, die, wie ich, keine vorherige Erfahrung mit diesem Datentyp haben.
diese Tabelle verwenden,
create table OrgChart
(
Position hierarchyid,
Title nvarchar(50)
)
Sie Parse direkt verwenden können, um die hierarchyid
s legen Sie die Zeichenfolge Pfade mit:
insert into OrgChart(Position, Title)
values (hierarchyid::Parse('/'), 'CEO'),
(hierarchyid::Parse('/1/'), 'Purchase Manager'),
(hierarchyid::Parse('/1/1/'), 'Purchase Executive'),
(hierarchyid::Parse('/2/'), 'Sales Manager'),
(hierarchyid::Parse('/2/1/'), 'Sales Executive')
und verwenden Sie die folgende Abfrage, um die Tabelle
select Position.ToString(), * from OrgChart
zu überprüfen
Sie können auch dieverwendenDatentyp und Methoden GetRootGetDescendant die Hierarchie aufzubauen. Ich fand diese Methode umständlicher, aber ich denke, diese Methoden sind notwendig, wenn Sie die Hierarchie programmatisch verwalten.
declare @root hierarchyid,
@id hierarchyid
set @root = hierarchyid::GetRoot()
insert into OrgChart(Position, Title) values (@root, 'CEO')
set @id = @root.GetDescendant(null, null)
insert into OrgChart(Position, Title) values (@id, 'Purchase Manager')
set @id = @root.GetDescendant(@id, null)
insert into OrgChart(Position, Title) values (@id, 'Sales Manager')
select @id = Position.GetDescendant(null, null) from OrgChart where Title = 'Purchase Manager'
insert into OrgChart(Position, Title) values (@id, 'Purchase Executive')
select @id = Position.GetDescendant(null, null) from OrgChart where Title = 'Sales Manager'
insert into OrgChart(Position, Title) values (@id, 'Sales Executive')
Auf jeden Fall einen Blick auf die in der anderen Antwort ausgebrachten Links, aber hoffentlich diesen Code hat, wird auch zu versuchen, helfen.
Schauen Sie sich diese URLs: [Mit hierarchyid Datentypen (Datenbankmodul)] (http://technet.microsoft.com/en-us/library/bb677173.aspx) [Tutorial: Mit dem hierarchyid Datentyp] (http: //technet.microsoft.com/en-us/library/bb677213.aspx) –