我寻找一种方法来填充现有的父子表:
Tabelle: Categories
-------------------
Columns: CategoryID
ParentID
我将我的 sql 服务器升级到 2008 R2。现在我添加了新的 hierarchyid-datatype 来优化性能。
所以我想写一个sql触发器来重组hierarchyid列,当插入/更新会调用......但我不是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;