Ssis

如果不匹配,SSIS 導入數據或插入數據

  • April 2, 2015

我有一種情況,我需要將數據從一個表導入到另一個表。這裡的挑戰是在表中,我有一些列是對其他表值(外鍵的一種)的引用。我需要匹配這些引用列,如果欄位匹配,我需要映射相應的 id,否則我需要將該值插入到引用表中,然後在源表數據源中映射 id 並導入所有數據。

詳細說明我的問題:

帶查找的 ETL

這就是我的 ETL 的樣子。目前我正在“查找匹配”中繼續執行,但如果“查找不匹配”,我還需要在相應的表中創建新記錄。(對於我正在做的所有 8 次查找,我都需要這樣做)。我不明白如何按順序執行所有這些並在最後階段導入所有數據。

這是我所做的:

  1. 創建了一個新的數據流來查找和插入不匹配的欄位。
  2. 插入了實際的數據流。

正如大衛在上面指出的那樣,要求有點含糊,但如果我理解正確,您希望導入在源系統中具有查找值的數據,並且如果目標系統中缺少這些查找值,那麼您希望添加它們在目標系統中。您可以通過在數據流任務中使用查找轉換來實現此目的。

具體來說,您可以在查找中添加查找無匹配輸出。然後,該流可以連接到 OLE DB 目標或 SQL 任務,以添加不匹配的數據。

無匹配輸出的查找

Robert Sheldon 寫了一個很好的教程,你可以在 Simple Talk 網站上找到https://www.simple-talk.com/sql/ssis/implementing-lookup-logic-in-sql-server-integration-services /

引用自:https://dba.stackexchange.com/questions/92041