Condividi tramite


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 AdventureWorks2008R2, ma questo è facoltativo. Per mantenere l'esempio semplice, questa tabella include solo cinque colonne:

  • OrgNode è una colonna hierarchyid che archivia 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.

  • Il numero di identificazione tipico del dipendente, utilizzato per applicazioni quali libro paga, è contenuto in EmployeeID. Nello sviluppo di nuove applicazioni, le applicazioni possono 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

  1. 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 AdventureWorks2008R2 ;
    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
    
  2. 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.