A-K*_*A-K 11 sql-server-2008 sql-server hierarchy sql-server-2008-r2
我正在玩 HierarchyId,但我还没有想出一种基于集合的方法来执行以下操作:
这个问题与我之前的问题有关,我怀疑使用 HierarchyId 完成这两个任务的唯一方法是一次一个节点或一个级别。如果我使用的是物化路径,那么这两个操作都可以通过一个(且简单的)基于集合的命令轻松完成。
我错过了什么?
编辑:我也错过了移动子树的方法,但我是从 Mikael Eriksson 的评论中学到的
要使用的函数是GetReparentedValue,但是当只GetReparentedValue
使用树时,最终可能会处于“不一致”状态。
这是 Microsoft 提供的一些代码来处理这个问题。移动子树。
我想与此相关的是Enforcing a tree。它为父 id 使用一个计算列,该列与 PK 进行自连接。