Lezione 2-1: Creazione di una tabella tramite il tipo di dati hierarchyidLesson 2-1 - Creating a Table Using the hierarchyid Data Type

Nell'esempio seguente viene creata una tabella denominata EmployeeOrg che include i dati del dipendente e la gerarchia del report.The following example creates a table named EmployeeOrg, which includes employee data together with their reporting hierarchy. L'esempio crea la tabella nel database AdventureWorks2012AdventureWorks2012 , ma questo è facoltativo.The example creates the table in the AdventureWorks2012AdventureWorks2012 database, but that is optional. Per mantenere l'esempio semplice, in questa tabella sono incluse solo cinque colonne:To keep the example simple, this table includes only five columns:

  • OrgNode è una colonna hierarchyid che archivia la relazione gerarchica.OrgNode is a hierarchyid column that stores the hierarchical relationship.

  • OrgLevel è una colonna calcolata in base alla colonna OrgNode che archivia il livello di ciascun nodo nella gerarchia.OrgLevel is a computed column, based on the OrgNode column that stores each nodes level in the hierarchy. Verrà utilizzata per un indice breadth-first.It will be used for a breadth-first index.

  • Il numero di identificazione tipico del dipendente, utilizzato per applicazioni quali libro paga, è contenuto in EmployeeID.EmployeeID contains the typical employee identification number that is used for applications such as payroll. Nello sviluppo di nuove applicazioni, le applicazioni possono utilizzare la colonna OrgNode mentre la colonna separata EmployeeID non è necessaria.In new application development, applications can use the OrgNode column and this separate EmployeeID column is not needed.

  • EmpName contiene il nome del dipendente.EmpName contains the name of the employee.

  • Title contiene la posizione del dipendente.Title contains the title of the employee.

Per creare la tabella EmployeeOrgTo create the EmployeeOrg table

  1. Nella finestra dell'editor di query eseguire il codice seguente per creare la tabella EmployeeOrg .In a Query Editor window, run the following code to create the EmployeeOrg table. Specificando la colonna OrgNode come chiave primaria con un indice cluster, verrà creato un indice depth-first:Specifying the OrgNode column as the primary key with a clustered index will create a depth-first index:

    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  
    
  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:Run the following code to create a composite index on the OrgLevel and OrgNode columns to support efficient breadth-first searches:

    CREATE UNIQUE INDEX EmployeeOrgNc1   
    ON HumanResources.EmployeeOrg(OrgLevel, OrgNode) ;  
    GO  
    

La tabella è ora pronta per i dati.The table is now ready for data. La prossima attività popolerà la tabella utilizzando metodi gerarchici.The next task will populate the table by using hierarchical methods.

Attività successiva della lezioneNext Task in Lesson

Popolamento di una tabella gerarchica utilizzando metodi gerarchiciPopulating a Hierarchical Table Using Hierarchical Methods