Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Ssis 加载昨天的数据';s日期和具体日期_Ssis_Ssis 2012 - Fatal编程技术网

Ssis 加载昨天的数据';s日期和具体日期

Ssis 加载昨天的数据';s日期和具体日期,ssis,ssis-2012,Ssis,Ssis 2012,我有一个ssis包,它根据日期参数运行。如果我们不指定日期,它总是加载昨天日期的数据。如果我们给出任何特定日期,如“2015-05-10”,则应加载该日期。我们如何动态地实现这一点(使用包配置)?一旦我们为任何特定日期加载,包应该动态地设置为昨天的日期。请指导我实现这一点,因为我是SSIS新手 提前感谢将参数添加到包ParamDate。必须手动提供该参数的值(例如03-21-2015)。如果必须考虑昨天的日期,请将其留空(空值) 现在在包中定义一个变量VarDate 有一个像这样的VarDate

我有一个ssis包,它根据日期参数运行。如果我们不指定日期,它总是加载昨天日期的数据。如果我们给出任何特定日期,如“2015-05-10”,则应加载该日期。我们如何动态地实现这一点(使用包配置)?一旦我们为任何特定日期加载,包应该动态地设置为昨天的日期。请指导我实现这一点,因为我是SSIS新手


提前感谢

将参数添加到包
ParamDate
。必须手动提供该参数的值(例如03-21-2015)。如果必须考虑昨天的日期,请将其留空(空值)

现在在包中定义一个变量
VarDate

有一个像这样的
VarDate
表达式-

ISNULL(@[$Project::ParamDate])?DATEADD("day", -1, getdate()):@[$Project::ParamDate]
我假设您正在DFT中加载数据

因此,在源代码查询中,您只需要在
where
子句中添加一个额外的条件

SELECT ...... FROM SomeTable WHERE LoadDate = ?
在源的“参数…”部分,将变量
VarDate
分配给
0
。有关如何映射参数的详细信息,请参见

希望能有帮助

编辑 由于这是在SSIS 2012下标记的,所以我的解决方案涉及项目参数,这是项目部署模型下的一个功能。包配置在包部署模型下

如果要使用SQL Server包配置表,则可以执行以下步骤:

假设该表的名称为
SSISConfiguration

  • 有一个执行SQL任务的
    Execute
    ,从该表中读取该日期

    SELECT ISNULL(TstampUpdateDate, DATEADD(dd, -1, GETDATE()) FROM SSISConfiguration
    
  • 此脚本将从
    SSISConfiguration
    表中获取
    TstampUpdateDate
    的值,如果该值为
    NULL
    (设置如下),它将返回昨天的日期

  • 将结果集映射到变量
    @VarDate

  • 在此步骤之后,再执行一个
    执行SQL任务
    ,将此字段更新为空

  • 其余步骤与上述步骤相同(从DFT位开始)

  • 下次运行包时,如果日期字段未更新,它将按照昨天的日期进行查询


  • 您好,苏拉夫谢谢您的回复,我需要使用sql server包配置来实现这一点。在我的包中,我只使用执行sql任务。提前感谢..什么样的包配置?sql server包配置,所以包只会创建一个表,我们可以在其中手动编辑配置值。所以我们不需要在任何时候编辑包。如果我们不编辑这个表,它应该考虑昨天的日期。我不知道如何在SSIS中实现这一点?我希望我能向你解释……谢谢苏拉夫,这对我很有效。谢谢你抽出时间。