階層データを使用したテーブルの設定
テーブルを階層構造に変換する場合、まず、変換するテーブルを作成します。次の手順では、従業員の 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 データ型を使用して新しいテーブルを作成し、この新しいテーブルにデータを移動します。