Поделиться через


Настройка таблицы с иерархическими данными

Первый шаг преобразования таблицы в иерархическую структуру заключается в создании таблицы, которую необходимо преобразовать. В следующей процедуре создается таблица, в которой содержатся такие данные о сотрудниках, как идентификаторы сотрудников и менеджеров, а также идентификаторы входа.

Создание таблицы 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 и переместим в нее данные.