CREATE TABLE AllIDs
(
ID int NULL,
isUsed BOOLEAN NULL
)
CREATE TABLE UsedIDs
(
ID int NULL
)
我想找到所有未使用的ID,也就是说,Allids中未出现在underIDS中的所有ID行 我尝试了以下和一些类似的变体,但是即使使用中等仓库,查询也无限期地运行(16多个小时)。
UPDATE AllIDs t
SET t.IsUsed = 0
from AllIDs
where not exists (select 1 FROM UsedIDs f
WHERE t.ID = f.ID )
任何想法如何有效地完成?
我认为,更新声明中的from
UPDATE allids t
SET t.isused = 0
WHERE NOT EXISTS (
SELECT 1
FROM usedids f
WHERE t.id = f.id
)