我對HierarchyId世界非常陌生,並且試圖在我的SQLServer設計中實現HierarchyId(),我的印象是SQL Server每個表只允許一個根節點每列,並且如果我嘗試了類似於如果表已經有根節點,那麼它應該出錯誤或拋出一些警告:SQL Server「不允許」多個根嗎?
INSERT INTO dbo.TeamHierarchy
(TeamNode, TeamId, TeamNodeName)
VALUES (HierarchyId::GetRoot(), -- TeamNode - hierarchyid
1, -- TeamId - int
'TeamContainer' -- TeamNodeName - varchar(50)
)
我的假設是基於一些,我讀線程:
SQL 2008 HierarchyID with Multiple Root Nodes
然而,這似乎是SQL Server會在擁有多個根目錄時沒有任何問題因爲上面的插入查詢工作得很好,沒有任何錯誤/警告。自從我使用SQL Server 2012以來SQL Server 2008發生了任何變化?或者我的身邊有任何誤解?