BIプロジェクト用に3つの環境(DEV、QA、PROD)があり、各環境に2つのデータベース(ソース(EDB)とターゲット(EDM))があります。
[〜#〜] dev [〜#〜]環境:ソース= EDB_DEVターゲット= EDM_DEV
[〜#〜] qa [〜#〜]環境:ソース= EDB_QAターゲット= EDM_QA
[〜#〜] prod [〜#〜]環境:ソース= EDBターゲット= EDM
SSIS OLE DBソースコンポーネントはEDB_DEVに接続していますが、クエリはEDM_DEVも参照しています
SELECT A, B, C
FROM tblFirst F --(table in EDB_DEV)
INNER JOIN EDM_DEV.dbo.tblEDMTable T ON T.ID = F.ID
次に、QAまたはPROD環境に移行する必要があります。だから私は疑問に思っています、接続/環境に基づいてどのデータベースに行くかを動的に伝えることができる方法はありますか?.
たとえば、QA環境で実行する場合は、クエリのEDM_DEVをEDM_QAに置き換える必要があります。
SSISパッケージの変数/パラメーターを使用して、クエリを動的に構築できます。これはおそらく最も簡単な方法です。パッケージ内のあらゆる場所で使用したクエリの数に基づいて設定を行うのは面倒な場合があります。次のいずれかを保持する「User :: Environment」変数のようなものを用意してください。_DEV
、_QA
または_PROD
。次に、それをクエリを保持する変数に結合し、その値を変更すると、適切なテーブルにクエリが実行されます。
接続しているサーバーに基づいて作成することもできますが、変数と式の設定でクエリを動的に構成する必要があるのと同じ前提になります。より正確に制御するために、接続しているサーバーに対して検証するよりも、おそらく上記の方法を使用します。