Configurando uma tabela com dados hierárquicos
A primeira etapa da conversão de uma tabela em uma estrutura hierárquica para criar a tabela a ser convertida. O procedimento a seguir cria uma tabela que contém informações sobre o ID do funcionário, do gerente e do login.
Para criar a tabela EmployeeDemo
Em uma janela do Editor de Consultas, execute o seguinte código para criar uma tabela nova chamada 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);
Para examinar a estrutura e dados da tabela EmployeeDemo
Essa nova tabela EmployeeDemo representa uma tabela típica em um banco de dados existente que você pode querer migrar para uma nova estrutura. Em uma janela de Editor de Consultas, execute o código seguinte para mostrar como a tabela usa uma autojunção para exibir as relações de funcionário/gerente:
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;
Aqui está o conjunto de resultados.
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
Na próxima tarefa, nós criaremos uma nova tabela com um tipo de dados hierarchyid e moveremos os dados para a nova tabela.