我試圖將行插入表'數據'中,如果它們不存在。從表A到表B的SQL INSERT缺失行
對於Export $中的每一行,我需要檢查'Data'是否符合Period(date)和ID(int)的行的數據 - 如果這些行不存在,那麼應該創建它們。
我很確定我的'NOT EXISTS'部分是錯的 - 最好的方法是什麼?感謝您的幫助
IF NOT EXISTS (SELECT * FROM Data, Export$ WHERE Data.ID = Export$.ID AND Data.Period = Export$.Period)
INSERT INTO Data (Period, Performance, ID)
SELECT Period, [Return], [ID] FROM Export$
在你不存在部分看上去正常乍一看。你認爲什麼是錯的? – 2013-02-12 23:43:41
問題在於,如果任何行(可能是其他行)匹配(可能有很多可以導入的行),這將阻止插入任何行。 – GilM 2013-02-12 23:49:11
哦!你是否試圖從*'Export $'插入「missing records」*?如果是這樣,請查閱'MERGE'。此外,Data和Exports之間的','有一個CROSS JOIN - 我建議不要這樣的語法。 – 2013-02-12 23:53:51