如何在不使用CTE的情况下从表中获取所有子元素的链



例如:A有一个孩子B。B有孩子CC有孩子D。如果我搜索A的子元素,我必须得到B,C,D。

我不能使用CTE

对于这一点,有了像hirerarchyid这样的新数据类型,我们可以非常简单更好地获得hirarical streture。但是,在插入数据时,我们必须输入谁在下面的代码下

CREATE TABLE [dbo].[EMP](
    [EMPNO] [numeric](4, 0) NOT NULL,
    [ENAME] [varchar](10) NULL,
    [JOB] [varchar](9) NULL,
    [MGR] [numeric](4, 0) NULL,
    [HIREDATE] [date] NULL,
    [SAL] [numeric](7, 2) NULL,
    [COMM] [numeric](7, 2) NULL,
    [DEPTNO] [numeric](2, 0) NULL,
    [hir] [hierarchyid] NOT NULL
)
7839    KING    PRESIDENT   NULL    1981-11-17  5000.00 NULL    10  /
7698    BLAKE   MANAGER 7839    1981-01-05  2850.00 NULL    30  /1/
7782    CLARK   MANAGER 7839    1981-09-06  2450.00 NULL    10  /1/1/
7566    JONES   MANAGER 7839    1981-02-04  2975.00 NULL    20  /2/

here/is根节点和/1/1/是如下所示的一对一这里有许多methode gothrough的链接http://www.codeproject.com/Articles/37171/HierarchyID-Data-Type-in-SQL-Server

最新更新