Настройка таблицы с иерархическими данными
Первый шаг преобразования таблицы в иерархическую структуру заключается в создании таблицы, которую необходимо преобразовать. В следующей процедуре создается таблица, в которой содержатся такие данные о сотрудниках, как идентификаторы сотрудников и менеджеров, а также идентификаторы входа.
Создание таблицы EmployeeDemo
Чтобы создать новую таблицу с именем 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);
Изучение структуры и данных таблицы EmployeeDemo
Новая таблица EmployeeDemo представляет собой типичный пример таблицы в существующей базе данных, которую можно преобразовать в новую структуру. Запустите следующий код в окне редактора запросов, чтобы увидеть, как таблица использует самосоединение для отображения связей сотрудник-менеджер.
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;
Ниже приводится результирующий набор.
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
В следующей задаче мы создадим новую таблицу с типом данных hierarchyid и переместим в нее данные.