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.