在ssis中动态生成上个月最后一天的文件

时间:2013-04-03 13:48:04

标签: sql sql-server-2008 tsql ssis

我需要使用SSIS生成一个月中最后一天的文件。我正在使用SQL。

DECLARE @mydate DATETIME
SELECT @mydate = '03/21/2013'
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),112) 
--20130228

我不知道如何将它放在连接管理器的SSIS表达式中 文件名将类似于'ABC_20130228.txt'

2 个答案:

答案 0 :(得分:0)

我会将日期分配给SSIS中的变量,然后将该变量传递给构建文件名的脚本任务,并将其放入输出变量中。然后,您可以在Connectionions属性组下的ConnectionString属性中为该输出文件的Connection Manager属性分配输出变量,以使用该变量的值作为文件名。

总结:

  1. 使用脚本任务并将文件名中使用的日期作为类型字符串的只读变量传递给它,以便于操作。
  2. 将一个读/写变量分配给脚本任务以存储您的文件名。
  3. 在脚本任务中创建文件名  名为的变量:User :: DataFile,User :: MaxDate 即String DataFileName;  String DateToUse;

    DateToUse =(String)Dts.Variables [“MaxDate”]。value;  DataFileName = “ABC _” + Convert.ToString((Convert.ToDateTime(DateToUse))。年)+ Convert.ToString((Convert.ToDateTime(DateToUse))。月)+ Convert.ToString((Convert.ToDateTime(DateToUse)) ·天)+ “TXT”;  。Dts.Variables [ “数据文件”]值= DataFileName;

  4. 将Connection Manager属性的Expression部分中的变量分配给CONNECTIONSTRING属性。

  5. 应该这样做。如果您需要特定路径,那么将在步骤4中将其连接到属性和变量上。

答案 1 :(得分:0)

为什么要使用脚本任务?为什么不使用这里描述的表达式:

Add datestamp to a .txt file in an SSIS Package?