Impostazione di una tabella con dati gerarchici
Il primo passaggio nella conversione di una tabella in una struttura gerarchica consiste nel creare la tabella da convertire. La procedura riportata di seguito crea una tabella contenente informazioni sull'ID di un dipendente, sull'ID del responsabile e sull'ID di accesso.
Per creare la tabella EmployeeDemo
In una finestra dell'editor di query eseguire il codice seguente per creare una nuova tabella denominata 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);
Per esaminare la struttura e i dati della tabella EmployeeDemo
Questa nuova tabella EmployeeDemo rappresenta una tabella tipica di un database esistente di cui è possibile eseguire la migrazione a una nuova struttura. 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:
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;
Set di risultati:
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
Nell'attività successiva verrà creata una nuova tabella con un tipo di dati hierarchyid e verranno spostati i dati nella nuova tabella.