删除没有引用行的行

时间:2016-12-22 13:16:47

标签: sql tsql

假设我有一个表格,其中fk约束到表格pk。

我想删除与它无关的所有行。

是否有办法跳过违反约束的行并删除所有其他行。

也许是每行有一个事务的循环..

1 个答案:

答案 0 :(得分:3)

我认为您要删除pk中没有引用行的所有行。如果是这样的话:

delete from pk
    where not exists (select 1
                      from fk
                      where fk.fk = pk.pk
                     );

注意:您 想要在此使用not in,因为fk.fk可能是NULL

相关问题