2017-03-09 11 views
1

私はSQL Server 2016を使用し、dynamic Nameを持つFlatFileをループ内の1つのDataFlowに作成したSSISパッケージを使用しています。私はこのpathernを使用している名前を作成するための動的名がある場合、ControlFlowでFlatFileをSSISでどのように削除できますか?

enter image description here

: "SomeText" + DateTime + "SomeText"

enter image description here

私は画像の下のようなvaribaleを作成しました

これは私の変数のExprissionです:

enter image description here

は、その後、私はこのように私のフラットファイル先ののConnectionStringプロパティに、この変数を割り当てた:私はデータを持っていないDataFlowにいくつかのケースで

enter image description here

と私は空のファイルを作成しますが、空のときにこのファイルを削除する必要があります。そのため、私はVariableを作成しました。この変数を設定するためにRowCount Componentを使用しました。 Control Flowでその後

enter image description here

、私は(私のループがオブジェクトに基づいています)私の変数が0の場合、ファイルを削除するための

enter image description here

File System Taskを入れている。しかし、私は持っています問題が発生しました。DataFlowに、ファイルを削除したい場合、FlatFileの名前が変更され、DataFlowで作成されたファイルが見つかりません。

問題は、変数を使用するときに変数の値が2回目に変更されることです。

Flat FileControl Flowは、DataFlowで動的に作成されたものを削除するにはどうすればよいですか?

+0

ストア変数で動的な名前、その後、あなたはそれがどこか – FLICKER

+0

@FLICKERダイナミック名が変数に今ある必要がありますが、私はこの問題を持っています。変数の値を読み込むたびに、初期化され、datetime部分のために新しい値が使用されます –

+0

dataflowタスクに関連してfilename変数をどこに設定するかを教えてください。適切なスコープ(パッケージレベル)がある場合は、変数を再初期化する必要はありません。 – JiggsJedi

答えて

2

にそれを置くことができ、出力文字列変数とFor each

式ビルダーで日付/時刻を使用しているため、常に変更されています。スクリプトタスクを使用すると、ループの繰り返しに合わせて日付/時刻の値を取得/保存し、その値をループ全体に永続的に保存することができます。

このスクリプトタスクは通常、ループの先頭(最初)にあり、繰り返しごとにファイル名を設定/変更します。ここで

これを行う方法のいくつかの例は以下のとおりです。 https://microsoft-ssis.blogspot.ca/2010/12/how-to-use-variables-in-script-task.html

ファイル名に使用されているデータフロー内の値を取得している場合は、更新するスクリプトコンポーネント(変換)を使用する必要がありますデータフロー内のファイル名。ここで

はこれを行う方法のいくつかの例です: https://microsoft-ssis.blogspot.ca/2011/01/how-to-use-variables-in-script.html

0

この削除手順をループごとに入れてください。ワイルドカードファイル名のマスクを持つForeach File Enumerator。ファイル名その発見されると、あなたはあなたがあなたの変数の値ではなく、式ビルダーを設定するには、スクリプトタスクを使用する必要があなたの削除変数

+0

私はフォルダにforeachを持っていません。オブジェクトのそれぞれのための私。私のデータフローの中で、私は動的な名前でフラットファイルを作成します。ファイルが空の場合、私は自分のファイルを削除したいが、私はファイルの名前が分からない。 –

関連する問題