2016-12-13 11 views
0

SSISでループを作成して、動的ネーミングを使用して別のSQLテーブルにインポートするために、異なるカラムを持つ8つの ".txt"ファイルがあります。だから "Static Text" + "FileName"のように、FileNameは可変です。SSISダイナミックファイルからSQLテーブルへのインポート

私はこれを行う前にパッケージを作成しましたが、静的な列を持ち、それらが同じSQLテーブルに追加されたばかりのファイルに対してのみ使用されていました。私は各ファイルの新しいSQLテーブルを作成するためにループを今実行していますが探しています。

SSISでこれを行うにはどうしますか?誰かが修正案を提案できるなら、私は以下のパッケージをいくつかスクリーンショットしています。提供されたヘルプについて事前に感謝します。

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

+0

これはできません。 SSISは、設計時にメタデータ(列、データ型など)を修正する必要があります。実行時に動的に変更することはできません。 – JodyT

+0

これをSSISでコーディングする方法はありませんか?私は以前これが行われているのを見たことがあります。 – bkubs557

+0

テキストファイルから列名を抽出し、これらの名前を使用して動的SQL文を作成してテーブルを作成し、SQLの実行タスクを使用して準備したcreate tableコマンドを実行できるようにする必要があります。 –

答えて

0

あなたは異なる構造を持つ多くのソースを持っている場合は、これを行うことはできません。 SSISは設計時にメタデータ(列、データ型など)を修正する必要があるためです。

同じ構造のテーブルがある場合は、1つの宛先テーブル(temp)を作成し、変数名にVarFileNameを入れ、OLEDB Destinationにマップする必要があります。 DataFlowTaskプロパティDelayValidationをTrueに設定する必要があります。 DataFlowTaskの実行が開始されるまで、メタデータはチェックされません。テーブルの作成

は(変数からテーブル名を渡す)式の

を使用してExecute SQL Taskで行われるべきで、それは

0
  1. がループを作成するのに役立ちます願っています。スクリプトを作成し、その中にDFTタスクを画像に示すように配置します。

Image : 1

  1. クレート元と宛先変数を、それらにいくつかの一時テーブル名を割り当てます。これらのテーブルは存在する必要があります。 enter image description here

  2. スクリプトタスクは、ソーステーブルとターゲットテーブルを更新します。 私は "dbo.T2" と "dbo.T4" に送信元と送信先テーブルの値を変更していた画像に

enter image description here

enter image description here

enter image description here

に従ってください。しかし、あなたの要件に応じて変更する必要があります。

関連する問題