別のデータベースの結果に基づいてデータベースをクエリする
SSIS では、複数のデータベースからデータを取得することが一般的なタスクになることがあります。この記事では、あるデータベースで別のデータベースから取得した結果に基づいてクエリを実行する 3 つの方法について説明します。
方法 1: ルックアップ変換を使用する
ルックアップ変換を追加して、最初のデータベースからの ID リスト。ルックアップ テーブルから少なくとも 1 つの列を選択します。ただし、ID リストに基づいて行をフィルタリングするには、次の操作を行う必要があります。
メソッド2: スクリプト タスクを使用する
この方法を使用すると、すべてのデータのロードを回避できます。 VB.NET コードでスクリプト タスクを使用して ID リストを取得し、ユーザー変数に保存します。変数を後続のデータ フロー タスクのソースとして設定します。
方法 3: SQL 実行タスクを使用する
方法 2 と似ていますが、SQL 実行タスクを使用してIN句を構築します。次の SQL コマンドを実行して、ID リストとクエリを含む単一の結果セットを取得します。
DECLARE @str AS VARCHAR(4000) SET @str = '' SELECT @str = @str + CAST([ID] AS VARCHAR(255)) + ',' FROM dbo.MyTable SET @str = 'SELECT * FROM MySecondDB WHERE ID IN (' + SUBSTRING(@str,1,LEN(@str) - 1) + ')' SELECT @str
結果をユーザー変数に保存し、DataFlow タスク遅延検証プロパティを True に設定します。
これらの方法のいずれかを活用すると、別のデータベースから取得した結果に基づいてデータベースに効果的にクエリを実行でき、SSIS パッケージ内でより複雑なデータ操作を実行できるようになります。
以上がSSIS で別のデータベースの結果に基づいて 1 つのデータベースをクエリする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。