1

我正在查看 SQLserver 2008 中的 HeirarchyId 并参考以下文档:

http://www.codeproject.com/Tips/740553/Hierarchy-ID-in-SQL-Server

据我了解像这样的声明

INSERT INTO H (Node, ID, Name)
   VALUES (HierarchyId::GetRoot(), 1, 'Thuru') 

将 Node 对象插入数据库。它具有三个属性,每个属性都转换为一列:

  • 节点文本
  • 节点
  • 节点级别

其中 Node 包含一些人类不可读的值,但我认为 Node Text 是一个引人注目的并且包含 \1\1 类型的格式,这种格式既是人类可读的,又可以跟踪每个节点在树中的位置。因此,当我们说“HeirarchyId”时,它指的是哪一列,除了 Node Text 是 Node 的人类可读表示这一事实之外,Node 和 NodeText 都完全相同?

4

1 回答 1

1

节点是示例中数据类型为 HierarchyID 的列的名称。在此查询的结果中,NodeText 是一个派生列,它是 Node 列路径的字符串表示形式(正如您所说的 Node 不是人类可读的)。

子节点将由节点深度的每个级别的斜线分隔 - 所以一个大子节点可能看起来像:1/3/15

NodeText     Node    NodeLevel     ID    Name
=============================================
/            0x      0             1     Thuru
于 2015-02-07T02:24:01.467 回答