2016-12-14 75 views
1

我有一個ETL項目,我需要將數據從一個文件夾中的一些50K Access .MDB數據庫加載到sql服務器。這些50K數據庫文件的問題在於它們有不同的模式,我需要ETL過程才能識別差異並正確響應。SSIS - 檢查OLE DB源模式

例如,在某些.MDB文件中有表A,B和C.但是在其他一些表中只有表A和B(與其他表相比,表A和B相同,只是表C缺失)。我需要檢查每個OLE DB源以查看哪些表可以實現邏輯,如IF表A存在,加載表A,否則繞過加載。

我已經完成了我的谷歌搜索和搜索,但所有的錯誤處理或檢查方法,我可以找到執行SQL任務或數據轉換任務。因此,如果任何人都可以解決我的上述案件,我會深表感謝。

謝謝。

+0

這聽起來像是BIML的工作。 BIML允許您基於元數據即時創建軟件包 –

回答

0

簡而言之 - SSIS假定元數據不會改變。
但是,用一些技巧,這個限制可以減少;下面是建議招數名單:

  1. 測試特定表的存在(見例如這裏How to use SQL to query the metadata in Microsoft Office Access? Like SQL Server's sys.tables, sys.columns etc),並根據結果 - 執行以下任務的條件執行。
  2. 所有到MS Access表的SQL請求都應該有DelayValidation屬性設置爲True。原因 - 將SQL命令驗證從包開始推遲到特定任務執行。某些任務(對於缺失的表)將不會執行;因此,它不會被驗證,並且不會激發驗證錯誤。