Lezione 1-1: Esame della struttura corrente della tabella EmployeeLesson 1-1 - Examining the Current Structure of the Employee Table

Il database di esempio AdventureWorks2012AdventureWorks2012 contiene una tabella Employee nello schema HumanResources .The sample AdventureWorks2012AdventureWorks2012 database contains an Employee table in the HumanResources schema. Per evitare di modificare la tabella originale, in questo passaggio viene creata una copia della tabella Employee denominata EmployeeDemo.To avoid changing the original table, this step makes a copy of the Employee table named EmployeeDemo. Per semplificare l'esempio, copiare solo cinque colonne della tabella originale.To simplify the example, you only copy five columns from the original table. Eseguire quindi una query sulla tabella HumanResources.EmployeeDemo per esaminare il modo in cui viene strutturata una tabella senza usare il tipo di dati hierarchyid .Then, you query the HumanResources.EmployeeDemo table to review how the data is structured in a table without using the hierarchyid data type.

Per copiare la tabella EmployeeTo copy the Employee table

  1. In una finestra editor di query, eseguire il codice seguente per copiare la struttura della tabella e i dati della tabella Employee in una tabella nuova denominata EmployeeDemo.In a Query Editor window, run the following code to copy the table structure and data from the Employee table into a new table named EmployeeDemo.

    USE AdventureWorks ;  
    GO  
    
    SELECT EmployeeID, LoginID, ManagerID, Title, HireDate   
    INTO HumanResources.EmployeeDemo   
    FROM HumanResources.Employee ;  
    GO  
    

Per esaminare la struttura e i dati della tabella EmployeeDemoTo examine the structure and data of the EmployeeDemo table

  • Questa nuova tabella EmployeeDemo rappresenta una tabella tipica di un database esistente di cui si può eseguire la migrazione a una struttura nuova.This new EmployeeDemo table represents a typical table in an existing database that you might want to migrate to a new structure. In una finestra editor di query, eseguire il codice seguente per visualizzare il modo in cui la tabella utilizza un self-join per visualizzare le relazioni dipendente/responsabile:In a Query Editor window, run the following code to show how the table uses a self join to display the employee/manager relationships:

    SELECT   
         Mgr.EmployeeID AS MgrID, Mgr.LoginID AS Manager,   
         Emp.EmployeeID AS E_ID, Emp.LoginID, Emp.Title  
    FROM HumanResources.EmployeeDemo AS Emp  
    LEFT JOIN HumanResources.EmployeeDemo AS Mgr  
    ON Emp.ManagerID = Mgr.EmployeeID  
    ORDER BY MgrID, E_ID  
    

    Set di risultati:Here is the result set.

    MgrID Manager                 E_ID LoginID                  Title  
    NULL NULL                      109 adventure-works\ken0     Chief Executive Officer  
    3    adventure-works\roberto0  4   adventure-works\rob0     Senior Tool Designer  
    3    adventure-works\roberto0  9   adventure-works\gail0    Design Engineer  
    3    adventure-works\roberto0  11  adventure-works\jossef0  Design Engineer  
    3    adventure-works\roberto0  158 adventure-works\dylan0   Research and Development Manager  
    3    adventure-works\roberto0  263 adventure-works\ovidiu0  Senior Tool Designer  
    3    adventure-works\roberto0  267 adventure-works\michael8 Senior Design Engineer  
    3    adventure-works\roberto0  270 adventure-works\sharon0  Design Engineer  
    6    adventure-works\david0    2   adventure-works\kevin0   Marketing Assistant  
    ...  
    

    Viene generato un totale di 290 righe di risultati.The results continue for a total of 290 rows.

Con la clausola ORDER BY , i report diretti di ogni livello di gestione vengono elencati insieme nell'output.Notice that the ORDER BY clause caused the output to list the direct reports of each management level together. Ad esempio, tutti i sette report diretti di MgrID 3 (roberto0) vengono elencati uno accanto all'altro.For instance, all seven of the direct reports of MgrID 3 (roberto0) are listed adjacent to each other. Anche se non impossibile, è molto più difficile raggruppare tutti coloro che riportano a MgrID 3.Although not impossible, it is much more difficult to group all those who eventually report to MgrID 3.

Nell'attività successiva verrà creata una nuova tabella con un tipo di dati hierarchyid e verranno spostati i dati nella nuova tabella.In the next task, we will create a new table with a hierarchyid data type, and move the data into the new table.

Attività successiva della lezioneNext Task in Lesson

Popolamento di una tabella con dati gerarchici esistentiPopulating a Table with Existing Hierarchical Data