2010-07-14 27 views

回答

2

SQL Server使用基於但不同於ORDPATH的編碼對hierarchyid進行編碼。

您可以在[MS-SSCLRT]: Microsoft SQL Server CLR Types Serialization Formats找到hierarchyid的「物理圖像」。總結:

  1. 編碼每個數字nhierarchyid作爲使用可變長度編碼的比特串。如果.跟在nhierarchyid之後,則編碼爲n+1而不是n

    位串的長度不一定是8的倍數!

    編碼的細節太長而不能包含在這裏。請注意,編碼必須支持負整數,零和正整數。它也必須是有序的保存。也就是說,對於整數ab,編碼爲e(a)e(b),如果a > b,則e(a) > e(b)(當編碼按照字典順序進行比較時)。

  2. 如果/跟在數字後面,則向位串添加1。如果.跟在數字後面,則向位串添加0。

  3. 連接所有位串。

  4. 追加0到第3步,直到長度的結果是8的倍數(如果它已經是8的倍數,則不會追加任何0此處。)

相關問題