背景: Server1には 4 つのテーブルを持つソース データベースがあります。Server2は、これらの 4 ~ 5 個のテーブル (およびいくつかの追加フィールド) を持つ宛先データベースです。サーバー 1 からサーバー 2 にデータを移動する前に、フィールド マッピングといくつかの追加処理 (つまり、切り捨て、連結など) があります。4 つの独立した dtsx パッケージがあり、それぞれに 1 つずつあり、各 dtsx パッケージを順番に 1 つずつ呼び出す SQL ジョブがあります。
プラットフォーム: SQL 2005 & SSIS 2005
さて、ご想像のとおり、各 dtsx パッケージは、接続マネージャーで "ソース" と "宛先" のデータベース接続をレプリケートします。リモート宛先データベースの設定を変更すると、各 dtsx で接続を変更する必要があります。リモート データベース接続情報を 1 か所で保持するオプションは何ですか?
ここに私が知っているいくつかがあります -
4 つの dtsx のそれぞれを順番に呼び出す親 dtsxを作成し (ジョブで行われるのと同じ)、この (親) パッケージで定義された接続変数を渡します (例)。ただし、これはジョブ内の単一の dtsx パッケージ ステップであるため、将来のデバッグが容易ではありません (現時点では、どのステップが失敗したかを簡単に特定できるため、どのテーブル/dtsx に問題があるかを確認できます)。
少し伝統的ですが、機能します -データベースのシノニムを使用します。データ比較 SP では、一部のリモート テーブルに対して既にシノニムを使用しています。4 つの新しいシノニム (リモート テーブルごとに 1 つ) を作成するとします。これらのテーブルは、同義語によって dtsx で直接参照できます。後で変更があった場合 - シノニムを削除して再作成するスクリプトを変更して再実行する必要があります (リモートでも実行できます!)
私は単純な dtsx の設計とプログラミングを行っているので、私の知識を許して、最善のアプローチを教えてください。