Я очень новичок в мире HierarchyId и пытаюсь реализовать HierarchyId() в моем дизайне SQLServer, и у меня создалось впечатление, что SQL Server допускает только один корневой узел на столбец для каждой таблицы, и если я попытаюсь сделать что-то вроде следующего, если в таблице уже есть узел Root, то он должен без ошибок или проливают предупреждение:Предоставляет ли 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 сервер нет проблем с наличием нескольких корневых потому что запрос вставки выше работает отлично, без каких-либо ошибок/предупреждений. Что-то изменилось с SQL Server 2008, поскольку я использую SQL Server 2012? Или на моей стороне было какое-то недоразумение?