2012-05-29 25 views
3

我想在SSIS中使用表達式構建器爲平面文件連接管理器 - 連接字符串創建隨機唯一文件名。SSIS如何在表達式中構建唯一文件名

應該是這樣的: 「自定義名稱」 + 「獨特之處」 + 「CSV」

Actualy以毫秒爲單位的時間戳會做。

有什麼想法?

回答

6

我建議你使用表達式設計來做到這一點。

這裏我使用ExecutionGuid來生成值。它可能不是最好的主意,因爲結果是相當大的,但你可以使用日期時間函數,以及創造你想要的格式的東西:

enter image description here

+0

對於執行GUID爲+1。不知道它存在。 –

+0

但是,如果我想將任何值傳遞給這個表達式,可能嗎?數據流任務中的變量示例存儲「RowCount」。我可以使用表達式構建器將它添加到FlatFile標題中嗎? – shockwave

0

string.Format("Custom name{0}.csv", Path.GetRandomFileName());

string.Format("Custom name{0}.csv", DateTime.Now.ToString("yyyyMMddhhmmssfff"));

1

這是一個令人費解的豆蔻感謝所有的替代,但您可以使用:

"Custom Name " + SUBSTRING(REPLACE(REPLACE(REPLACE((DT_WSTR, 50)(GETDATE()), "-",""), ".", ""), ":",""), 1, 18) + ".csv" 

爲出發點。這將返回:

Custom Name 20120529 133526359.csv 

作爲一個可能的文件名。它不是100%保證獨一無二的,它顯然不是隨機的,但我認爲這只是在表達式中可以完成的。或者,您可以使用腳本任務使用C#/ VB.NET生成更隨機的字符串,將其寫入變量並在Expression中使用該變量。

+0

謝謝。我將使用腳本任務,但迭戈爲我的問題提供了答案。 – no9

0

這將獲得獨特的日期時間..

" + (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"