確定,所以根據Microsoft docs在SSIS的OLE DB命令轉換做到這一點SSIS OLEDB目的地,SQL命令(insert,如果不存在的話)
的OLE DB命令轉換運行的每一行SQL語句在數據流。例如,您可以運行插入,更新或刪除數據庫表中的行的SQL語句。
所以我想寫一些SQL在我的表只有在記錄不存在
所以,我想這一個插入行,但控制不好保存的sintaxys抱怨
IF NOT EXISTS
(SELECT * FROM M_Employee_Login WHERE
Column1=?
AND Column2=?
AND Column3=?)
INSERT INTO [M_Employee_Login]
([Column1]
,[Column2]
,[Column3])
VALUES
(?,?,?)
但是,如果我刪除IF NOT EXISTS部分(只留下插入),控件說可能代碼是好的,我做錯了什麼。
有沒有更簡單的解決方案?
更新: BTW我的源是平面文件(CSV文件),因爲答案
更新:只是爲了讓人們知道。我結束了使用OLE DB Command Transformation
像我計劃的原因比這個操作的OLE DB Destination
好。不同之處在於我使用Lookup Component
來過濾所有已經存在的記錄(如提供的答案)。然後在問題中使用OLE DB Command Transformation
和Insert SQL
,它按預期工作。希望它可以幫助
Thx很多我知道應該有一個簡單的方法做到這一點 – Termiux