既存の親子テーブルにデータを入力する方法を探します。
Tabelle: Categories
-------------------
Columns: CategoryID
ParentID
SQL サーバーを 2008 R2 にアップグレードします。そして今、パフォーマンスを最適化するために新しい hierarchyid-datatype を追加しました。
したがって、挿入/更新が呼び出されるときに、hierarchyid-column を再編成するための sql-trigger を作成することを考えています...しかし、私は sql の専門家ではないので、誰かが私を助けてくれることを願っています。
テストクエリ: (再帰呼び出しごとに文字列を追加する必要があります)
;WITH CTE (CategoryID, ParentID, HierarchyString) AS (
SELECT CategoryID, ParentID, HierarchyString = CAST(ParentID AS VARCHAR(8000)) + '/' + CAST(CategoryID AS VARCHAR(8000))
FROM Categories
UNION ALL
SELECT r.CategoryID, r.ParentID, HierarchyString = CAST(p.CategoryID AS VARCHAR(8000)) + '/' + CAST(r.ParentID AS VARCHAR(8000))
FROM Categories r
INNER JOIN CTE p ON r.CategoryID = p.ParentID
)
SELECT * FROM CTE;