将时间戳添加到SSIS包中的.txt文件中?

时间:2010-12-06 23:24:31

标签: visual-studio ssis

我正在使用Visual Studio 2005构建一个将平面文件(.txt)存入指定位置的包。该包将在每个工作日运行。目前,存放的文件名为summary.txt,并且每天都会为新内容覆盖该文件。我想要做的是将文件的名称更改为summarymmddyyy.txt,并且每天只需将一个新文件添加到该位置以及存款日期。那么,今天的摘要是摘要12062010.txt,明天的摘要是摘要12072010.txt等。有没有办法在SSIS包中做到这一点?实际上,我所做的只是一个简单的数据流,它从SQL DB源到这个平面文件执行select语句 - 没什么太花哨的。谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用被评估为表达式的变量来创建文件名。

在包中添加新的SSIS变量。在“变量”窗口中选择新变量并查看属性(按F4)。将EvaluateAsExpression属性设置为True,并为Expression属性值

输入以下内容
"summary" + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("mm", GETDATE())), 2) + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("dd", GETDATE())), 2) + (DT_STR, 4, 1252) (DATEPART("yyyy", GETDATE())) + ".txt"

此表达式使用函数提取月,日和年值,并包含根据今天的日期创建名称的值。

选择平面文件的连接管理器。查看属性(按F4)。选择“表达式”属性,然后单击省略号(...)按钮。在Property Expression Editor中,选择ConnectionString属性。并按以下格式输入新变量的名称:

@[User::MyVariable]

如果需要包含路径,请创建如下表达式:

"C:\MyFiles\" + @[User::MyVariable]

如果您愿意,可以避免使用变量并将整个表达式放在ConnectionString属性中:

"C:\MyFiles\" + "summary" + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("mm", GETDATE())), 2) + RIGHT("0" + (DT_STR, 2, 1252) (DATEPART("dd", GETDATE())), 2) + (DT_STR, 4, 1252) (DATEPART("yyyy", GETDATE())) + ".txt"