2012-03-08 151 views
1

我面臨的情況是,我已經構建了用於整合多個數據庫中的表的SSIS包,但有時DBA會手動刪除源表中的記錄。如果記錄被刪除,是否有任何方法可以檢測統一表格?我知道我可以在包運行之前每次截斷統一表,但是我想知道是否還有其他方法?SSIS檢查記錄是否被刪除

+0

嗨,你能給更多的細節?您閱讀DB1,DB2和DB3並在合併表上插入數據,對吧?在源數據庫上刪除有什麼問題?它會破壞什麼?還是僅僅是缺少的記錄? – Diego 2012-03-08 13:20:52

+0

您的統一表是否有一種機制將一行唯一地綁定回源系統? – billinkc 2012-03-08 15:49:44

+0

@Diego:如果來自DB1的記錄被刪除,那麼它仍然存在於統一表中。 – 2012-03-09 09:26:16

回答

0

我想幾種解決方案,但我知道現在的大問題是,你沒有一個統一的數據源,所以記錄可能不是一個,而是存在於存在B,因此你不能刪除它。

所以我的建議是,插入後,從所有來源運行選擇不同(ID),並將它們放在一個結構(表,臨時表,視圖,UNION,任何..),並從這個運行合併只用一個WHEN NOT MATCHED THEN DELETE就可以在ID上輸入目的地。