2012-03-30 30 views
5

我有2個SQL Server 2008中的相同表,其中一個是我的應用程序不斷使用的「Live」表。我在一天中定期下拉新記錄,並將它們插入到「暫存」表中,我需要從中取出新記錄並插入到Live表中。我不希望爲了防止某些記錄重疊而插入任何重複項。我需要查看10列,看看是否存在相同的記錄,我查看了一些TSQL示例,但目前爲止沒有任何示例正在工作,我也考慮過處理這些模糊問題,只報告DISTINCT值,但是DISTINCT一個爲一個記錄工作,我需要它爲10工作。任何建議?使用臨時表中的記錄填充活動表

感謝, 山姆

回答

5

這是一個理想的用例NOT EXISTS - 您可以檢查多個標準,你想驗證你不會插入重複數據刪除技術。

INSERT INTO Live 
SELECT <fields> 
FROM Staging s 
WHERE NOT EXISTS (SELECT 1 
        FROM Live l 
        WHERE s.FieldA = l.FieldA 
        AND s.FieldB = l.FieldB 
        <all your checks here>...) 
+0

這很好,謝謝! – 2012-03-30 15:19:13

+0

@SamCromer樂於幫助。 – JNK 2012-03-30 15:20:31