Partager via


Configuration d'une table avec des données hiérarchiques

La première étape de conversion d'une table en structure hiérarchique consiste à créer la table à convertir. La procédure suivante crée une table qui contient des informations sur l'ID d'un employé, l'ID de responsable et l'ID de connexion.

Pour créer la table EmployeeDemo

  • Dans une fenêtre de l'Éditeur de requête, exécutez le code suivant pour créer une table nommée EmployeeDemo.

    CREATE TABLE EmployeeDemo (EmployeeID int, LoginID varchar(200), ManagerID int);
    INSERT INTO EmployeeDemo 
    VALUES (1, 'zarifin', Null), 
           (2, 'tplate', 1),
           (3, 'hjensen', 1),
           (4, 'schai', 2),
           (5, 'elang', 2),
           (6, 'gsmits', 2),
           (7, 'sdavis', 3),
           (8, 'norint', 3),
           (9, 'jwang', 4),
           (10, 'malexander', 4);
    

Pour examiner la structure et les données de la table EmployeeDemo

  • Cette nouvelle table EmployeeDemo représente une table classique dans une base de données existante que vous pouvez souhaiter migrer vers une nouvelle structure. Dans une fenêtre de l'Éditeur de requête, exécutez le code suivant pour voir comment la table utilise une jointure réflexive pour afficher les relations employé/responsable :

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

    Voici l'ensemble des résultats.

    MgrID Manager E_ID LoginID

    NULL NULL 1 zarifin

    1 zarifin 2 tplate

    1 zarifin 3 hjensen

    2 tplate 4 schai

    2 tplate 5 elang

    2 tplate 6 gsmits

    3 hjensen 7 sdavis

    3 hjensen 8 norint

    4 schai 9 jwang

    4 schai 10 malexander

Dans la tâche suivante, nous créerons une table avec un type de données hierarchyid et déplacerons les données dans la nouvelle table.