このタスクでは、フラット ファイルのフォルダーをループ処理し、レッスン 1 で使用したのと同じデータ フロー変換を各フラット ファイルに適用する機能を追加します。 そのためには、Foreach ループ コンテナーを制御フローに追加して、構成します。
Foreach ループ コンテナーを追加したら、フォルダー内の各フラット ファイルに接続できるようにする必要があります。 フォルダー内のファイルはすべて同じ形式なので、Foreach ループ コンテナーは、どのファイルに接続する場合でも同じフラット ファイル接続マネージャーを使用できます。 コンテナーで使用されるフラット ファイル接続マネージャーは、レッスン 1 で作成したのと同じフラット ファイル接続マネージャーです。
現在、レッスン 1 のフラット ファイル接続マネージャーは、1 つの特定のフラット ファイルにのみ接続します。 フォルダー内の各フラット ファイルに繰り返し接続するには、Foreach ループ コンテナーとフラット ファイル接続マネージャーの両方を次のように構成する必要があります。
Foreach ループ コンテナー: コンテナーの列挙値をユーザー定義のパッケージ変数にマップします。 その後、コンテナーはこのユーザー定義変数を使用して、フラット ファイル接続マネージャーの
ConnectionStringプロパティを動的に変更し、フォルダー内の各フラット ファイルに繰り返し接続します。フラット ファイル接続マネージャー: レッスン 1 で作成した接続マネージャーを変更するには、ユーザー定義変数を使用して、接続マネージャーの
ConnectionStringプロパティを設定します。
このタスクの手順では、Foreach ループ コンテナーを作成および変更して、ユーザー定義のパッケージ変数を使用し、データ フロー タスクをループに追加する方法を示します。 次のタスクでユーザー定義変数を使用するようにフラット ファイル接続マネージャーを変更する方法について説明します。
これらの変更をパッケージに加えた後、パッケージが実行されると、Foreach ループ コンテナーは Sample Data フォルダー内のファイルのコレクションを反復処理します。 条件に一致するファイルが見つかるたびに、Foreach ループ コンテナーによってユーザー定義変数にファイル名が設定され、ユーザー定義変数が Sample Currency Data Flat File 接続マネージャーの ConnectionString プロパティにマップされ、そのファイルに対してデータ フローが実行されます。 そのため、Foreach ループの各イテレーションで、データ フロー タスクは異なるフラット ファイルを使用します。
注
MicrosoftIntegration Services は制御フローをデータ フローから分離するため、制御フローに追加するループでは、データ フローを変更する必要はありません。 そのため、レッスン 1 で作成したデータ フローを変更する必要はありません。
Foreach ループ コンテナーを追加するには
SQL Server データ ツールで、[制御フロー] タブをクリックします。
SSIS ツールボックスで [コンテナー] を展開し、 [ForEach ループ コンテナー] を [制御フロー] タブのデザイン画面にドラッグします。
新しく追加した Foreach ループ コンテナー を右クリックし、[ 編集] を選択します。
[ Foreach ループ エディター ] ダイアログ ボックスの [ 全般 ] ページで、[ 名前] に「
Foreach File in Folder」と入力します。 OK をクリックします。Foreach ループ コンテナーを右クリックし、[ プロパティ] をクリックし、[プロパティ] ウィンドウで、
LocaleIDプロパティが 英語 (米国) に設定されていることを確認します。
Foreach ループ コンテナーの列挙子を構成するには
フォルダー内の Foreach ファイルをダブルクリックして、 Foreach ループ エディターを再度開きます。
[ コレクション] をクリックします。
[コレクション] ページで、 [Foreach File 列挙子] を選択します。
列挙子構成グループで、[参照] をクリックします。
[ フォルダーの参照 ] ダイアログ ボックスで、Currency_*.txt ファイルを含むコンピューター上のフォルダーを見つけます。
このサンプル データは、SSIS レッスン パッケージに含まれています。 サンプル データとレッスン パッケージをダウンロードするには、次の手順を実行します。
[ ダウンロード ] タブをクリックします。
ハイパーリンク "https://msftisprodsamples.codeplex.com/downloads/get/578097"" をクリックして、SQL2012.Integration_Services.Create_Simple_ETL_Tutorial.Sample.zip ファイルを開きます。
[ ファイル ] ボックスに、「 Currency_*.txt」と入力します。
列挙子をユーザー定義変数にマップするには
[ 変数マッピング] をクリックします。
[変数マッピング] ページの [変数] 列で、空のセルをクリックし、[新しい変数<選択します。..>。
[ 変数の追加 ] ダイアログ ボックスの [名前] に「
varFileName」と入力します。重要
変数名では大文字と小文字が区別されます。
OK をクリックします。
もう一度 [OK] を クリックして、[ Foreach ループ エディター ] ダイアログ ボックスを終了します。
データ フロー タスクをループに追加するには
-
サンプル通貨データの抽出データ フロー タスクを Foreach ループ コンテナーにドラッグし、
Foreach File in Folder名前を変更しました。