带功能的SSIS参数

时间:2017-03-29 20:47:59

标签: sql sql-server parameters ssis etl

我已经对此进行了相当多的搜索,但未能找到可靠的解决方案。我有一个用例,例如我想在文件名中包含日期,假设我使用以下公式:

"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) +".csv"

这可以很好地作为变量,但是如果我想将此函数作为参数从SSMS传递呢?有没有办法将参数作为表达式进行求值?我试图将参数传递给变量,以达到所需的效果。

我是否在这里遗漏了一些东西,或者我应该将其硬编码到变量中/在其他地方计算并将其从表中拉入SSIS?

2 个答案:

答案 0 :(得分:0)

如果要从数据库函数中检索值并存储在变量中,可以使用“执行SQL任务”。

您可以将变量与其他变量中的表达式以及脚本组合在一起。您执行计算的地方是您的选择。

答案 1 :(得分:0)

  1. 首先,您必须创建p_Date类型的DateTimeFilename类型的String
  2. 在属性选项卡中为变量EvaluateAsExpressions设置Filename = True并使用以下表达式

    "EmployeeCount_"+(DT_STR,4,1252)DATEPART( "yyyy" , @[User::p_Date]  )+ RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" ,  @[User::p_Date]  ), 2)  + RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" ,  @[User::p_Date] ), 2) +".csv"
    
  3. enter image description here

    enter image description here

    1. 添加Execute SQL Task
    2. ResultSet属性设置为Single Row
    3. 填写SqlCommandConnection媒体资源
    4. enter image description here

      1. 转到ResultSet标签,添加新结果集,如下图所示
      2. enter image description here

        注意:上图中的0表示您提供的sql命令中的列索引