删除没有约束的行

时间:2014-09-22 10:18:44

标签: sql sql-server

我有一张桌子,我设法偶然复制了很多行。 id列是自动增量并具有外键约束。我想要做的是删除没有活动约束的所有行。这可能吗?

修改

这个查询给了我一个需要删除的记录的IDS列表,有没有一种很好的方法可以将其编辑后删除?

SELECT WHL_LEVEL_ID
FROM [RMIS].[dbo].[WHL_LEVEL_DETAIL]
except
select WHL_LEVEL_ID
from [RMIS].[dbo].[WHL_SKU_LOCATION]

1 个答案:

答案 0 :(得分:0)

因此,您已经拥有了可以删除的行的WHL_LEVEL_ID。典型的解决方案就像是

delete from [RMIS].[dbo].[WHL_LEVEL_DETAIL]
where WHL_LEVEL_ID in (
    SELECT WHL_LEVEL_ID
    FROM [RMIS].[dbo].[WHL_LEVEL_DETAIL]
    except
    select WHL_LEVEL_ID
    from [RMIS].[dbo].[WHL_SKU_LOCATION]
)

虽然我不能100%确定SQLserver是否支持where .. in (select以及它是否使用了这种语法。