sql-server - Sql Server SSIS 包平面文件目标文件名模式(日期、时间或类似)?

标签 sql-server ssis sql-server-2012

我正在安排一个 SSIS 包将数据导出到平面文件。

但我想生成带有一些日期信息的文件名,例如 foo_20140606.csv

可能吗?

谢谢

最佳答案

借助表达式,您可以使连接动态化。

从“连接管理器” Pane 中选择您的平面文件连接。在“属性” Pane 中,单击“表达式(...)”。然后从下拉列表中选择 ConnectionString Property,并在 Expression(...) 中输入表达式并对其求值。

表达式构建 -

For day : (DT_STR,4,1252)DAY( DATEADD( "dd", -1, getdate() ))
For month: (DT_STR,4,1252)MONTH( DATEADD( "dd", -1, getdate() ))
For Year:  (DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() ))

示例表达式(您需要根据您的要求进行调整)-

"E:\\Backup\\EmployeeCount_"+(DT_STR,4,1252)DATEPART( "yyyy" , getdate() ) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" , getdate() ), 2) + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" , getdate() ), 2) +".txt" 

它给出 E:\Backup\EmployeeCount_20140627.txt 作为值。

请注意 - 您需要一个有效的平面文件连接,因此首先创建平面文件连接,其 connectionString 属性随后将被表达式自动替换。

您也可以按照这些分步文章进行操作。

ssis dynamically naming destination

SSIS Dynamic Flat File Connection

enter image description here

enter image description here

关于sql-server - Sql Server SSIS 包平面文件目标文件名模式(日期、时间或类似)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24452622/

相关文章:

sql-server-2005 - 使用派生列为每行创建格式为 YYYY-MM-01 00 :00:00. 000 的日期值

asp.net - 在 MsSQL、ASP.NET 中每半小时删除所有行

sql-server - 自 3 天前起在 Azure Blob 存储中创建 Sql 备份时出现信号量超时错误

sql-server - SQL 手机号码验证

sql-server - 跨多个脚本/选项卡的 SQL Server 临时表

mysql - Entity Framework 和数据库不可知编程,可能性?

sql全文查询表达式,如何知道sql匹配了哪些形式的同义词?

sql - 合并主键违规

sql-server - SSIS如何通过分隔符获取字符串的一部分

c# - SSIS:C# 脚本任务:如何根据运行 dtsx 的服务器环境更改 SQL 连接字符串?