3

我想使用平面文件连接管理器的表达式生成器在 SSIS 中创建随机唯一文件名 - ConnectionString。

应该像:“自定义名称”+“唯一部分”+“csv”

实际上,以毫秒为单位的时间戳就可以了。

任何的想法?

4

5 回答 5

6

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

这里我使用 ExecutionGuid 来生成值。这可能不是最好的主意,因为结果非常大,但您也可以使用 datetime 函数以您想要的格式创建一些东西:

在此处输入图像描述

于 2012-05-29T14:14:58.047 回答
2

由于所有的替换,这有点令人费解,但你可以使用:

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

作为起点。这将返回:

Custom Name 20120529 133526359.csv

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

于 2012-05-29T12:37:49.023 回答
0

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

或者

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

于 2012-05-29T12:26:37.430 回答
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"
于 2013-10-15T16:35:16.447 回答
0

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

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

于 2017-03-30T19:41:22.457 回答