0

興味深い問題があります。同じサーバー内の 2 つのデータベースに対してクエリを実行する必要があります。

select a.id, b.name
from COMPANY_ORDERS.Table a 
left join COMPANY_USERS.Table B on a.id = b.id

さらに明確にするために、テーブルは常にです!異なる名前のデータベースです。

それはそれほど難しいことではありません。それらは同じサーバー上にあります。でも今!私はこれらのペアをいくつか持っています。

MICROSOFT_ORDERS joins on MICROSOFT_USERS
IBM_ORDERS joins on IBM_USERS

COMPANY_ORDERS と COMPANY_USERS の各ペアでクエリを動的に実行するにはどうすればよいですか?

(または、SSIS 2012 でこれを行うにはどうすればよいでしょうか?)

一緒に考えてくれてありがとう!

4

1 に答える 1

2

「Data Masseur」に従って、INFORMATION_SCHEMA.TABLES を使用して動的クエリを生成できます。これは、以下の SSIS ソリューション オプションで必要になるため、ご検討いただければ幸いです。

SSISの場合..

  1. 「SQL タスクの実行」を使用 - クエリを使用して、データベース 1 から Company テーブルのリストを取得します。完全な結果セットを返し、変数に保存するように設定します (変数はオブジェクト型である必要があります)。

  2. 「Foreach ループ コンテナー」を追加し、「SQL 実行タスク」を「Foreach ループ コンテナー」に接続します。Foreach ループ エディター - コレクション - で、列挙子を「Foreach ADO 列挙子」に、「ADO オブジェクト ソース変数」を「SQL タスクの実行」で使用した変数 (オブジェクト型) に設定します。Foreach ループ エディター - 変数マッピングで、各値を文字列の変数に保存します。

  3. 「Foreach ループ コンテナー」に「データ フロー タスク」を追加します。データ フロー タスクでは、会社のテーブル名を保持している変数を使用してデータベース 2 のテーブル名を取得し、動的クエリを作成して必要なことを実行できるようにする必要があります。

申し訳ありませんが、写真を投稿するのに十分なポイントがありません。

于 2014-08-05T17:53:14.483 に答える