SQL Server:尝试删除
问题描述:
我有一堆表中的数据充当父(外键关系中的主键)到其他几个表。我基本上想要通过这张表并尝试删除没有孩子的记录。我已经删除了孩子,所以有父母是无子女的。SQL Server:尝试删除
如果一条记录可以删除,删除它,否则移动到下一条记录,并且不会显示我不能删除错误。
这不是任何一种生产需要,我只是乱搞一些测试代码,并删除了一些孩子,现在我想删除他们伤心的父母。
这可以在sql或C#linq的东西中完成。我基本上只是想清除我的无关数据。
答
你总是可以尝试像
DELETE FROM ... WHERE NOT EXISTS (...
答
查询可以用户外连接 - 比方说,你有主机和子女参加的ID
delete m
from master m
left outer join child c
on m.id = c.id
where c.id is null
这样做是加入了所有的有孩子的主人的记录和孩子不存在的地方的记录会将空值纳入。你只需要选择那些孩子为零的人
数据安乐死在道德上是有问题的。我建议将你的伤心父母与孤儿配对。 – 2010-10-28 04:19:09
没有孤儿,这会违反外键约束。如果只有生活执行外键约束。 – Shawn 2010-10-28 04:33:02