Этот код не работает, когда я пытаюсь найти один родительский узел
declare @val hierarchyid select @val = dbo.GetHierarchyIDbyID(30) --get the parent select * from NodeHierarchy where @val.GetAncestor(NodeHierarchyID) = 1
Как бы вы нашли родителя?
Предполагая, что имя поля, содержащего идентификатор иерархии, "hid", вы можете сделать следующее:
DECLARE @val HIERARCHYID SELECT @val = dbo.GetHierarchyIDbyID(30) SELECT * FROM NodeHierarchy WHERE hid = @val.GetAncestor(1)