【发布时间】:2012-05-29 12:18:29
【问题描述】:
我想使用平面文件连接管理器的表达式生成器在 SSIS 中创建随机唯一文件名 - ConnectionString。
应该是:“自定义名称”+“唯一部分”+“csv”
实际上以毫秒为单位的时间戳就可以了。
有什么想法吗?
【问题讨论】:
我想使用平面文件连接管理器的表达式生成器在 SSIS 中创建随机唯一文件名 - ConnectionString。
应该是:“自定义名称”+“唯一部分”+“csv”
实际上以毫秒为单位的时间戳就可以了。
有什么想法吗?
【问题讨论】:
我建议你使用表达式设计来做到这一点。
这里我使用 ExecutionGuid 来生成值。这可能不是最好的主意,因为结果非常大,但您也可以使用日期时间函数来创建您想要的格式:
【讨论】:
感谢所有 REPLACE,这有点令人费解,但您可以使用:
"Custom Name " + SUBSTRING(REPLACE(REPLACE(REPLACE((DT_WSTR, 50)(GETDATE()), "-",""), ".", ""), ":",""), 1, 18) + ".csv"
作为起点。这将返回:
Custom Name 20120529 133526359.csv
作为可能的文件名。它不是 100% 保证唯一的,而且它显然不是随机的,但我认为这只是在一个表达式中可以完成的所有事情。或者,您可以使用脚本任务使用 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"
【讨论】:
我发现很容易找到如何创建表达式,但很难找到有关如何设置输出文件名以使用此表达式的说明。这不是一个简单的过程。这是这个问题的答案。我希望这对某人有所帮助。
【讨论】: