2016-12-14 13 views
1

フォルダ内の50K Access .MDBデータベースからSQL Serverにデータをロードするために必要なETLプロジェクトがあります。これらの50Kデ​​ータベースファイルの問題は、スキーマが異なることです。違いを識別して正しく応答できるようにするには、ETLプロセスが必要です。SSIS - OLE DBソーススキーマのチェック

たとえば、いくつかの.MDBファイルにはテーブルA、B、Cがありますが、他のテーブルにはテーブルAとテーブルBのみがあります。 Cがありません)。私はそれぞれのOLE DBソースをチェックして、IFテーブルAが存在するか、テーブルAをロードするか、そうでなければ負荷をバイパスするかのようなロジックを実現するテーブルを確認する必要があります。

私はグーグルが行われ、SO検索が、すべてのエラー処理や、私が見つけることができる方法を確認しましたが、実行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プロパティがに設定されている必要があります。真の値はです。理由 - パッケージの開始から特定のタスクの実行までのSQLコマンド検証の延期。一部のタスク(欠落しているテーブル用)は実行されません。したがって、検証されず、検証エラーが発生しません。
関連する問題