2012-05-07 4 views
1

複数のSSISパッケージは、複数の参照テーブル(国、通貨、言語など)にデータをインポートします。SSISルックアップ - 不明なコードの決定

これらのテーブルのそれぞれは、受信データコードがこれらの参照テーブルにあるコードの一部でない場合(つまり、言語に不明なコードがある場合)に特別な値を持ちます。これは、参照整合性を維持し、システムに未知の着信コードを追跡するために行われます。それは完全に正常であり、このプロセスを維持する必要があります。

SSISは、入力値が参照されたコードセットの一部ではないことを簡単に判別できますか?これが起こると、Unknownコードをどのように割り当てるか?

これを複数の列にわたってグローバルに行う方法はありますか?

ソースの各列にルックアップタスクを使用しないようにしようとしています。

お時間をいただきありがとうございます。

+0

こんにちは。わたしはあなたの質問がわからなかった。あなたはおそらく例を挙げることができますか? – Diego

+0

インポートされたデータのコードは4ですが、コード4は参照テーブルのコードに存在しません。 SSISでこれを検出し、ルックアップを使わずにデフォルト値を割り当てる方法(ルックアップするフィールドが多いため) – dirtyw0lf

答えて

0

私が見る唯一の可能な方法は、コード表とのマージ結合演算子(完全結合)と、次に派生表を使用して、必要に応じてNULLを変換することです。

しかし、なぜ検索を使いたくないですか?あなたが検索しなければならない列の量とあなたがperformaceについて心配しているからです。問題がある場合は、FULL CACHEオプションを設定してルックアップを実装しようとお勧めします。このようにして、検索クエリ(例のコード)は1回だけ実行され、結果はメモリに保持されます。

+0

SQLの更新ステートメントから値を更新するだけのデータフロータスクの後にSQLタスクを使用することの意味は何ですか? – dirtyw0lf

+2

ああ、その可能性があればさらに良いだろう – Diego

+1

私はDiegoに同意する、更新ステートメントはおそらくより良いパフォーマンスを設定ベースになるだろう。このタイプの操作 - ロード後の更新 - の名前はELT:Extract、Load、Transformです(このパターンについてもっと知りたい場合に備えて...)。 –

0

ルックアップ変換を使用します。これを達成する最も簡単な方法です。

関連する問題