我有一张桌子,我设法偶然复制了很多行。 id列是自动增量并具有外键约束。我想要做的是删除没有活动约束的所有行。这可能吗?
修改
这个查询给了我一个需要删除的记录的IDS列表,有没有一种很好的方法可以将其编辑后删除?
SELECT WHL_LEVEL_ID
FROM [RMIS].[dbo].[WHL_LEVEL_DETAIL]
except
select WHL_LEVEL_ID
from [RMIS].[dbo].[WHL_SKU_LOCATION]
答案 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
以及它是否使用了这种语法。