我想在SSIS中使用表达式构建器为Flat文件连接管理器 - ConnectionString创建随机唯一文件名。
应该像:“自定义名称”+“独特部分”+“csv”
Actualy会有一个以毫秒为单位的时间戳。
有什么想法吗?
答案 0 :(得分:6)
我建议你使用表达式设计来做到这一点。
这里我使用ExecutionGuid生成值。这可能不是最好的主意,因为结果非常大,但您也可以使用日期时间函数来创建所需格式的内容:
答案 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)
我发现很容易找到如何创建表达式,但很难找到有关如何设置输出文件名以使用此表达式的说明。这不是一个简单的过程。这是这个问题的答案。我希望这有助于某人。