小编Khr*_*nos的帖子

选择SQL Server中相同表关系中的所有父项或子项

SQL开发人员,我有一个计划不周的数据库作为了解SQL Server 2012的重要任务.

那么,有桌子Elem:

+-----------+----+---+----------+------------+
|VERSION(PK)|NAME|KEY|PARENT_KEY|DIST_KEY(FK)|
+-----------+----+---+----------+------------+
|1          |a   |12 |NULL      |1           |
+-----------+----+---+----------+------------+
|2          |b   |13 |12        |1           |
+-----------+----+---+----------+------------+
|3          |c   |14 |13        |1           |
+-----------+----+---+----------+------------+
|4          |d   |15 |12        |1           |
+-----------+----+---+----------+------------+
|5          |e   |16 |NULL      |1           |
+-----------+----+---+----------+------------+
|6          |e   |17 |NULL      |2           |
+-----------+----+---+----------+------------+
Run Code Online (Sandbox Code Playgroud)

更新行后,我需要检查元素的父键,不允许元素是自己的奶奶或什么..

当我删除行时,我需要删除所有孩子和孩子的孩子等.

问题是:

  1. 如何选择DIST的一个元素的所有"父+祖父母+等"?

  2. 我怎样才能选择DIST的一个元素的所有"儿子+孙子+等"?

我读过有关CTE的解决方案,但我没有元素根,我甚至无法理解如何使用CTE.

请帮忙!

谢谢.

sql t-sql sql-server select sql-server-2012

16
推荐指数
1
解决办法
3万
查看次数

标签 统计

select ×1

sql ×1

sql-server ×1

sql-server-2012 ×1

t-sql ×1