以下是我想要的: 將tableA複製到tableB,但不復制已經在tableB中的任何行。沒有PK或標識,我只是想檢查每個字段,並且如果有與所有相同字段匹配的行,則不要插入。我試着用INSERT和MERGE:跳過/忽略/不插入重複行
--try with INSERT
INSERT TableB(col1,col2,col3,col4,col5,col6, etc.)
SELECT (col1,col2,col3,col4,col5,col6, etc.)
FROM tableA as src
WHERE NOT EXISTS (SELECT 1 FROM TableB as T
WHERE
T.col1 = src.col1 AND
T.col2 = src.col2 AND
T.col3 = src.col3 AND
T.col4 = src.col4 AND
T.col5 = src.col5 AND
T.col6 = src.col6, etc.)
我也試過用MERGE:
MERGE INTO tableA src
USING tableB T
ON (
T.col1 = src.col1 AND
T.col2 = src.col2 AND
T.col3 = src.col3 AND
T.col4 = src.col4 AND
T.col5 = src.col5 AND
T.col6 = src.col6, etc.)
WHEN NOT MATCHED THEN
INSERT (col1,col2,col3,col4,col5,col6, etc.)
VALUES (col1,col2,col3,col4,col5,col6, etc.);
兩個做同樣的事情:我會做插件(或合併)並且最初所有的行都被導入,這很好,但是在第二次嘗試時(應該插入/合併0行),它將插入/合併60%的行。
我相信這個問題是因爲我沒有PK,這是我在其他帖子上看到的。我只想匹配所有領域,這可能嗎?我錯過了什麼嗎?
感謝您的任何建議/方向!
使用光標或遞歸函數這可能會幫助你 –
@AnantDabhi - 光標是這個 – LittleBobbyTables
感謝完全矯枉過正爲了幫助我.. –