获得所有祖先是行不通的

Getting all the ancestors doesn't work

我在 SQL 服务器中使用 HierarchyId,我参考下面的文章来获取所有祖先

https://technet.microsoft.com/en-us/library/bb677212%28v=sql.105%29.aspx

我有以下代码:

  DECLARE @last_child HIERARCHYID
     select *
     FROM   dbo.Geography AS g
     WHERE  @last_child.GetAncestor(1) = 0x58

     SELECT @last_child

我在数据库中确实有一个 ID 为 0x58 的节点,它确实有一个子节点。但是,@last_child 由于某种原因不断返回 null。我做错了什么吗?

好的。我仍然不确定上面的代码有什么问题。但是,我找到了另一种方法来查找特定父节点的所有子节点。代码贴在下面:

SELECT *
FROM Geography
WHERE GeographyNode.IsDescendantOf(0x58) = 1