わかりましたので、Microsoft docsによると、SSIS の OLE DB Command Transformation はこれを行います
OLE DB コマンド変換は、データ フローの各行に対して SQL ステートメントを実行します。たとえば、データベース テーブルの行を挿入、更新、または削除する SQL ステートメントを実行できます。
したがって、レコードが存在しない場合にのみ、テーブルの1つに行を挿入するSQLを書きたい
だから私はこれを試しましたが、コントロールは悪いsintaxyについて不平を言い続けます
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 セクションを削除すると (挿入のみを残す)、コードが問題ない可能性があるとコントロールに表示されます。
もっと簡単な解決策はありますか?
更新:ところで私のソースはフラットファイル(csvファイル)です
回答後の更新:人々に知らせるためだけに。私は、この操作OLE DB Command Transformation
よりも、計画された原因の方が優れているようなものを使用することになりOLE DB Destination
ました。違いは、Lookup Component
既存のすべてのレコードをフィルタリングするために を使用したことです(回答が示唆したように)。次に、質問にあった を使用するOLE DB Command Transformation
と、期待どおりに機能しました。Insert SQL
それが役に立てば幸い