2011-05-10 50 views
0

我有DB1和DB2。我想將所有表格數據從DB1導出到DB2。 DB2中的一些表格與DB1具有相似的行。由於PK約束,無論我在SSIS中使用什麼方法,都會引發錯誤。 如何忽略目標表中的動態行,並繼續與其他人進行復制。我需要立即運行整個數據庫的過程。我有100桌的表如此做每張桌子將無法正常工作。我試過在SSIS(BI)中使用Transfer SQL Server對象任務控制,但它沒有給我選擇處理我的情況。數據庫合併問題與重複行

任何幫助高度讚賞,這是沒有什麼緊急的。

回答

0

您可以使用此查找。

http://jahaines.blogspot.com/2009/09/ssis-only-inserting-rows-that-do-not.html

編輯:如果你從兩個表需要合併數據,然後合併使用合併組成的兩個數據源,然後使用查找合併表之後。如果合併數據中有重複項,則可以在合併和查找之間使用排序組件,並勾選框以刪除重複項。但要小心,在資源使用方面使用排序組件是很昂貴的。

完成此操作的另一種方法是將兩個表中的所有數據放入接收SQL框中的單個臨時表中。然後編寫一個存儲過程以僅將新行插入到生產表中,最後截斷暫存表。我將從控制流中調用SP作爲執行SQL任務。

就個人而言,我會使用臨時表方法,因爲反覆試驗顯示這對我來說更簡單,最有效。不需要昂貴的排序和查找(查找並不昂貴),但是SP中基於集合的工作是SQL引擎喜歡做的。

+0

是的,我正在考慮LOOKUP控制,但無法找到方法來在一次運行中通過查找來複制所有表格。有沒有可用的控件允許通過LOOKUP合併兩個相似的模式數據庫? – Frenk 2011-05-11 13:10:56

+0

我已更新我的回答以反映。 – 2011-05-11 15:22:02