gpt4 book ai didi

sql-server - 关于HierarchyId (SQL Server 2008)的一些问题

转载 作者:行者123 更新时间:2023-12-02 03:28:24 25 4
gpt4 key购买 nike

我是 SQL Server 2008 的新手,刚刚接触 HierarchyId。

我正在向SQL Server 2008 - HIERARCHYID - PART I学习。所以基本上我是逐行关注这篇文章的,在 SSMS 中练习时,我发现对于每个 ChildId 都会生成一些十六进制值,如 0x,0x58,0x5AC0 等。

我的问题是

  1. 这些十六进制值是什么?
  2. 为什么会生成这些以及它们的用途是什么?我的意思是我可以在哪里使用这些十六进制值?
  3. 我们可以控制这些十六进制值吗?我的意思是我们可以更新等等吗?
  4. 如何通过查看这些十六进制值来确定层次结构。我的意思是如何确定哪个是父级,哪个是子级?

最佳答案

这些十六进制值只是层次结构级别的二进制表示。一般来说,您不应该直接使用它们。

您可能想查看以下示例,我认为它应该是不言自明的。我希望它能让您朝着正确的方向前进。

创建一个包含 hierarchyid 字段的表:

CREATE TABLE groups (
group_name nvarchar(100) NOT NULL,
group_hierarchy hierarchyid NOT NULL
);

插入一些值:

INSERT INTO groups (group_name, group_hierarchy)
VALUES
('root', hierarchyid::Parse('/')),
('domain-a', hierarchyid::Parse('/1/')),
('domain-b', hierarchyid::Parse('/2/')),
('sub-a-1', hierarchyid::Parse('/1/1/')),
('sub-a-2', hierarchyid::Parse('/1/2/'));

查询表:

SELECT 
group_name,
group_hierarchy.ToString()
FROM
groups
WHERE
(group_hierarchy.IsDescendantOf(hierarchyid::Parse('/1/')) = 1);

关于sql-server - 关于HierarchyId (SQL Server 2008)的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1914376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com