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)
更新行后,我需要检查元素的父键,不允许元素是自己的奶奶或什么..
当我删除行时,我需要删除所有孩子和孩子的孩子等.
问题是:
如何选择DIST的一个元素的所有"父+祖父母+等"?
我怎样才能选择DIST的一个元素的所有"儿子+孙子+等"?
我读过有关CTE的解决方案,但我没有元素根,我甚至无法理解如何使用CTE.
请帮忙!
谢谢.