使用层次结构数据设置表

将表转换为层次结构的第一步是创建要转换的表。以下过程创建包含有关雇员 ID、经理 ID 和登录 ID 的信息的表。

创建 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 数据类型创建一个新表,然后将数据移到该新表中。

课程中的下一个任务

使用现有层次结构数据填充表