Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在ssis中动态生成上月最后一天的文件_Sql_Sql Server 2008_Tsql_Ssis - Fatal编程技术网

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

Sql 在ssis中动态生成上月最后一天的文件,sql,sql-server-2008,tsql,ssis,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'我会将日期分配给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'

我会将日期分配给SSIS中的一个变量,然后将该变量传递给一个脚本任务,该任务将构建文件名并将其放入输出变量中。然后,您可以在该输出文件的连接管理器属性中的表达式属性组下的ConnectionString属性中指定输出变量,以使用该变量的值作为文件名

总结如下:

  • 使用脚本任务并将要在文件名中使用的日期作为只读变量作为类型字符串传递给它,以使其更易于操作
  • 为脚本任务分配读/写变量以存储文件名
  • 在脚本任务中创建文件名。
    变量名:User::DataFile,User::MaxDate ie字符串数据文件名; 字符串日期

    DateToUse=(字符串)Dts.Variables[“MaxDate”].value; DataFileName=“ABC_”+Convert.ToString((Convert.ToDateTime(DateToUse)).Year)+Convert.ToString((Convert.ToDateTime(DateToUse)).Month)+Convert.ToString((Convert.ToDateTime(DateToUse)).Day)+“.txt”; 变量[“数据文件”]。值=数据文件名

  • 将连接管理器属性的表达式部分中的变量指定给CONNECTIONSTRING属性


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

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


    你可以这样做。我之所以使用这段代码,是因为出于其他原因,我还必须创建多个文件名,并且必须进行其他操作。我从那套程序中提取了命名部分。