理解HeirarchyId节点好一点

时间:2015-02-07 02:03:59

标签: sql-server hierarchyid tree-structure

我在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对象插入数据库。它有三个属性,每个属性都转换为一列:

  • 节点文字
  • 节点
  • 节点级别

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

1 个答案:

答案 0 :(得分:1)

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

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

NodeText     Node    NodeLevel     ID    Name
=============================================
/            0x      0             1     Thuru