Flat file connection Manager - ConnectionString の式ビルダーを使用して、SSIS でランダムな一意のファイル名を作成したいと思います。
「カスタム名」+「一意の部分」+「csv」のようにする必要があります
実際には、ミリ秒単位のタイムスタンプで十分です。
何か案が?
そのためには、式デザインを使用することをお勧めします。
ここでは、ExecutionGuid を使用して値を生成しています。結果が非常に大きいため、最良のアイデアではないかもしれませんが、日時関数を使用して、必要な形式で何かを作成することもできます。
すべての REPLACE のおかげで少し複雑ですが、次を使用できます。
"Custom Name " + SUBSTRING(REPLACE(REPLACE(REPLACE((DT_WSTR, 50)(GETDATE()), "-",""), ".", ""), ":",""), 1, 18) + ".csv"
出発点として。これは以下を返します:
Custom Name 20120529 133526359.csv
可能なファイル名として。100% 一意であることは保証されておらず、明らかにランダムではありませんが、Expression で実行できるのはそれだけだと思います。または、スクリプト タスクを使用して、C#/VB.NET を使用してよりランダムな文字列を生成し、それを変数に書き込み、その変数を式で使用することもできます。
string.Format("Custom name{0}.csv", Path.GetRandomFileName());
また
string.Format("Custom name{0}.csv", DateTime.Now.ToString("yyyyMMddhhmmssfff"));
これは、一意の日時を取得するためのものです..
" + (DT_WSTR, 30)(DT_DBDATE)GETDATE() + "_" +
(DT_WSTR, 05) DATEPART("Hh",GETDATE()) +
(DT_WSTR, 05) DATEPART("Mi",GETDATE()) +
(DT_WSTR, 05) DATEPART("Ss",GETDATE()) +
".csv"
エクスプレッションの作成方法を見つけるのは簡単ですが、このエクスプレッションを使用するように出力ファイル名を設定する方法を見つけるのは難しいことがわかりました。これは簡単なプロセスではありません。これがこの問題に対する答えです。これが誰かに役立つことを願っています。