我想弄清楚如何從臨時表(temp)插入現有表(tbl01),其中記錄不存在於現有表表(tbl01)。我希望這是有道理的。我基本上是試圖用自上次更新表格以來發生的記錄更新表格。這裏是我到目前爲止的代碼:從另一個表中插入不存在記錄的表
insert into tbl01
(sale_store, sale_dt, sale_register, sale_trans)
select distinct
sale_store, sale_dt, sale_register, sale_trans
from temp
where NOT EXISTS (select * from tbl01)
是我遇到的問題是它的運行,但不會把任何新的記錄到表 - 應該會有很多的新紀錄。我相信這是一個小而愚蠢的我錯過了。我用這篇文章作爲我的指南:How to avoid duplicates in INSERT INTO SELECT query in SQL Server?
提前謝謝!
你如何確定'tbl01'中的一條獨特記錄。它是'sales_store'還是多個字段? 'NOT EXISTS(SELECT ...)'運行select語句,如果它有任何記錄,那麼'NOT EXISTS'失敗,所以你要麼需要一個相關的子查詢,要麼使用一個' NOT IN(SELECT FROM ... )' –
JNevill
這四個字段一起創建一個'獨特'記錄。因此,我需要包含以下所有四個字段: 不存在(從tbl01選擇sale_store,sale_dt,sale_register,sale_trans – DJDJ23
如果您的目標是作爲SET表創建的,並且您的PK包含所有列,那麼您可以INSERT/SELECT沒有WHERE,重複的行被SET表丟棄了。 – dnoeth