web-dev-qa-db-ja.com

SSISを使用したクロスサーバークエリ

2つのサーバー上のDBに対してクエリを発行する必要があります。

[CRM].[CRM].[dbo].[BasicInfo] (NationalID PK, CustomerCardNo)
[ERP].[ERP].[dbo].[Order] (OrderID PK, CustomerCardNo)

そして、私がしたいのは次のようなものです:

select * 
from   [ERP].[ERP].[dbo].[Order] as O 
where  O.CustomerCardNo in (select CustomerCardNo 
                            from   [CRM].[CRM].[dbo].[BasicInfo]);

これを達成するには3つの方法があると思います。

  1. リンクサーバー:リンクサーバーに慣れていないため、私のマネージャーはおそらくこれを承認しません。
  2. オープンデータソース:会社のポリシーにより、開発者はDBパスワードにアクセスできません。
  3. SSIS:残された唯一の選択肢のようであり、私の会社はSSISを広く採用しています。

グーグルで検索すると、SSISを使用してこれを行う方法に関するチュートリアルを見つけることができませんでした。最も近い質問は this です。ガイダンスを教えてください。

4
Ryan

SSISを使用してこれを実現するには、多くの方法があります。

  1. ルックアップ変換の使用
  2. スクリプトタスクの使用
  3. SQL実行タスクの使用

また、あなたは他の方法を見つけるかもしれません...

私はstackoverflowに関する同様の質問について詳細な回答があります:

2
Hadi

あなたがやっていることは内部結合に相当するので、これを試してみてください: SSIS Merge Join

2
Nestor