Creazione di una tabella utilizzando il tipo di dati hierarchyid
Nell'esempio seguente viene creata una tabella denominata EmployeeOrg che include i dati del dipendente e la gerarchia del report. L'esempio crea la tabella nel database AdventureWorks2012 , ma questo è facoltativo. Per mantenere l'esempio semplice, in questa tabella sono incluse solo cinque colonne:
OrgNode è una colonna hierarchyid in cui viene archiviata la relazione gerarchica.
OrgLevel è una colonna calcolata in base alla colonna OrgNode che archivia il livello di ciascun nodo nella gerarchia. Verrà utilizzata per un indice breadth-first.
EmployeeID contiene il numero di identificazione tipico del dipendente, utilizzato per applicazioni quali libro paga. Nello sviluppo di nuove applicazioni, è possibile utilizzare la colonna OrgNode, mentre la colonna separata EmployeeID non è necessaria.
EmpName contiene il nome del dipendente.
Title contiene la posizione del dipendente.
Per creare la tabella EmployeeOrg
Nella finestra dell'editor di query eseguire il codice seguente per creare la tabella EmployeeOrg. Specificando la colonna OrgNode come chiave primaria con un indice cluster, verrà creato un indice depth-first:
USE AdventureWorks2012 ; GO CREATE TABLE HumanResources.EmployeeOrg ( OrgNode hierarchyid PRIMARY KEY CLUSTERED, OrgLevel AS OrgNode.GetLevel(), EmployeeID int UNIQUE NOT NULL, EmpName varchar(20) NOT NULL, Title varchar(20) NULL ) ; GO
Eseguire il codice riportato di seguito per creare un indice composto per le colonne OrgLevel e OrgNode al fine di supportare ricerche breadth-first efficienti:
CREATE UNIQUE INDEX EmployeeOrgNc1 ON HumanResources.EmployeeOrg(OrgLevel, OrgNode) ; GO
La tabella è ora pronta per i dati. La prossima attività popolerà la tabella utilizzando metodi gerarchici.
Attività successiva nella lezione
Popolamento di una tabella gerarchica utilizzando metodi gerarchici