Mi sono imbattuto in questa domanda durante la ricerca di informazioni sul tipo di dati hierarchyid
e ho pensato che sarebbe stato interessante per chiunque altro venisse dopo di me per vedere anche il codice per inserire hierarchyid
s come da domanda.
Non ho la pretesa che questi sono gli unici modi per inserire hierarchyid
s, ma speriamo che aiutare coloro che, come me, non hanno precedenti esperienze di lavoro con questo tipo di dati.
Utilizzando questa tabella,
create table OrgChart
(
Position hierarchyid,
Title nvarchar(50)
)
è possibile utilizzare Parse per inserire direttamente le hierarchyid
s utilizzando i percorsi a corda:
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')
e utilizzare la seguente query per controllare la tabella
select Position.ToString(), * from OrgChart
È inoltre possibile utilizzare il hierarchyid
metodi tipo di dati GetRoot e GetDescendant per costruire la gerarchia. Ho trovato questo metodo più ingombrante, ma suppongo che l'utilizzo di questi metodi sia necessario se gestisci la gerarchia in modo programmatico.
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')
Sicuramente controllare i link forniti in altra risposta, ma si spera che avendo questo codice per provare aiuterà pure.
Controllare questi URL: [Utilizzo dei tipi di dati gerarchici (Motore di database)] (http://technet.microsoft.com/en-us/library/bb677173.aspx) [Esercitazione: Utilizzo del tipo di dati gerarchico] (http: //technet.microsoft.com/en-us/library/bb677213.aspx) –