2015-02-07 33 views
1

我在看HeirarchyId在2008年的SQLserver,並參考以下文件:瞭解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 Text是Node的人類可讀表示這一事實之外都是一樣的東西?

+1

適合您使用的數據類型HIERARCHYID。在我看來,它太沒用了。 – 2015-02-07 05:40:25

回答

1

節點是示例中數據類型爲HierarchyID的列的名稱。在此查詢的結果中,NodeText是一個派生列,它是Node列路徑的字符串表示形式(正如您所說的Node不是人類可讀的)。

子節點將用斜線每個級別深節點是分開 - 這樣一個大的孩子可能是這樣的:15年1月3日

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