SSIS如何在Expression中构建唯一的文件名

时间:2012-05-29 12:18:29

标签: ssis filenames

我想在SSIS中使用表达式构建器为Flat文件连接管理器 - ConnectionString创建随机唯一文件名。

应该像:“自定义名称”+“独特部分”+“csv”

Actualy会有一个以毫秒为单位的时间戳。

有什么想法吗?

5 个答案:

答案 0 :(得分:6)

我建议你使用表达式设计来做到这一点。

这里我使用ExecutionGuid生成值。这可能不是最好的主意,因为结果非常大,但您也可以使用日期时间函数来创建所需格式的内容:

enter image description here

答案 1 :(得分:2)

感谢所有REPLACE,这是一个小小的错综复杂,但你可以使用:

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

作为起点。这将返回:

Custom Name 20120529 133526359.csv

作为可能的文件名。它并非100%唯一保证,而且显然不是随机的,但我认为只需在Expression中就可以完成所有这些工作。或者,您可以使用脚本任务使用C#/ VB.NET生成更随机的字符串,将其写入变量并使用表达式中的变量。

答案 2 :(得分:0)

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

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

答案 3 :(得分: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"

答案 4 :(得分:0)

我发现很容易找到如何创建表达式,但很难找到有关如何设置输出文件名以使用此表达式的说明。这不是一个简单的过程。这是这个问题的答案。我希望这有助于某人。

https://blogs.msdn.microsoft.com/sqlgardner/2015/06/18/ssis-tip-using-a-file-path-parameter-for-multiple-flat-files/#comment-1755