2010-07-26 4 views
0

Я создал таблицу #temp в SQL, содержащую повторяющиеся записи.Удалить из таблицы записи, которые находятся в таблице #temp

Я хотел бы удалить из своей основной таблицы все записи, содержащиеся в этой временной таблице. Я вижу образцы, чтобы сделать это, но они кажутся всем выборам invovle, и у меня уже есть мой выбор в таблице temp.

Вот что это будет выглядеть в псевдокоде:

DELETE FROM MyMainTable(unique and duplicate records) WHERE the record exists in #temp 

ответ

8
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) 
+0

Благодарим за помощь, это прекрасно работает. – user53885

2

В глобальном уровне, как ваш вопрос:

Если TempTable имеет первичный идентификатор, который у оригинала был

Delete From Originaltable where primarykeyid in (select primarykeyid from temptable) 
+0

IMO вы обычно получаете лучшую производительность, используя 'EXISTS' с' JOIN', чем с 'IN' –

+0

. Спасибо, спасибо за помощь. – user53885

Смежные вопросы