【发布时间】:2015-03-19 23:34:26
【问题描述】:
假设我的数据库中有以下分层表示:
A
|_B_C
|_D
然后我想从 A(或 B)获取子节点。 反之亦然,我想从给定的子节点获取父节点?
CREATE TABLE tbl (
Node HierarchyID PRIMARY KEY CLUSTERED,
NodeLevel AS Node.GetLevel(),
ID INT UNIQUE NOT NULL,
Name VARCHAR(50) NOT NULL
)
插入根:
INSERT INTO tbl (Node, ID, Name)
VALUES (HierarchyId::GetRoot(), 1, 'A')
孩子B
DECLARE @parent HierarchyId = HierarchyId::GetRoot()
INSERT INTO tbl (Node,ID,Name) VALUES (@parent.GetDescendant(NULL,NULL),2,'B')
【问题讨论】:
-
表格定义、示例数据和所需结果会有所帮助。
标签: sql tsql hierarchyid