我有一个简单的表列如下:ID,名称和的parentID
我创建关系图ID和的parentID(在同一个表)之间,像简单的树,在同一个表,但是当我试图给用户的级联删除对我来说是禁用
我知道,这将是递归删除,如果我将删除父它将删除他的孩子
有我的ANABLE级联任何选项删除不触发?
我有一个简单的表列如下:ID,名称和的parentID
我创建关系图ID和的parentID(在同一个表)之间,像简单的树,在同一个表,但是当我试图给用户的级联删除对我来说是禁用
我知道,这将是递归删除,如果我将删除父它将删除他的孩子
有我的ANABLE级联任何选项删除不触发?
没有,SQL Server不允许递归和/或多个级联路径。
您可以使用存储过程的点点删除位,或使用触发器。 抱歉。
最好能触发多个动作后使用。
一种选择可能为你工作:
问题是,当你删除一个孩子,你不会从其父删除链接,当你删除一个家长,你会不会删除其子女的任何孙子的任何链接。
但是,您可以通过随时使用INNER JOIN对阵双方PARENTID和childID的解决这个问题在你的应用程序,所以在父/子表中的任何剩余的绒毛都将被忽略。
然后,您可以运行在你想清理任何父/子关系,其中无论是父母或儿童不存在任何时间为基础的存储过程。 冲洗,每次运行时重复,因为一个简单的DELETE FROM WHERE父子NE(母)或NE(孩子)不会递归。