我在SQL中創建了一個包含重複記錄的#temp表。從表中刪除#temp表中的記錄
我想從我的主表中刪除此臨時表中包含的所有記錄。我看到樣本做到這一點,但他們似乎都invovle選擇,我已經有我的選擇在臨時表中。
下面是它會是什麼樣子的僞代碼:
DELETE FROM MyMainTable(unique and duplicate records) WHERE the record exists in #temp
我在SQL中創建了一個包含重複記錄的#temp表。從表中刪除#temp表中的記錄
我想從我的主表中刪除此臨時表中包含的所有記錄。我看到樣本做到這一點,但他們似乎都invovle選擇,我已經有我的選擇在臨時表中。
下面是它會是什麼樣子的僞代碼:
DELETE FROM MyMainTable(unique and duplicate records) WHERE the record exists in #temp
DELETE T
FROM MyMainTable T
INNER JOIN #temp ON T.id = #temp.id
你也可以這樣做:
DELETE T
FROM MyMainTable T
WHERE EXISTS (SELECT *
FROM #temp
WHERE T.id = #temp.id)
由於全球水平爲你的問題:
如果不是Temptable有主要的ID,原來有
Delete From Originaltable where primarykeyid in (select primarykeyid from temptable)
國際海事組織你通常會獲得更好的表現,使用帶'JOIN'的'EXISTS'而不是'IN' – 2010-07-26 14:40:09
謝謝感謝您的幫助。 – user53885 2010-07-26 14:41:29
謝謝你的幫助,這工作很好。 – user53885 2010-07-26 14:41:49