将查询参数传递到SSIS

时间:2009-08-19 21:36:04

标签: ssis

我有一个SSIS包,它使用SQL命令从视图中查询数据。

SQL命令看起来像这样:

SELECT from myView WHERE dateEntered >= GetDate() AND dateEntered < GetDate() + 1

现在我希望能够指定开始日期和结束日期,以便查询表现为:

SELECT from myView WHERE dateEntered >= startDate AND dateEntered < endDate

但是,如果没有提供开始和结束日期,我需要使用今天的日期和今天的日期+ 1

在SSIS包中执行此操作的最佳方法是什么?

我无法更改视图,因此必须在视图之外或在SSIS中使用变量。我对SSIS不太熟悉,不确定工具箱中是否有东西让我处理日期变量然后在SQL命令中使用它?

2 个答案:

答案 0 :(得分:0)

我最终使用/ SET将参数传递给dtexec。

然后我使用脚本任务处理日期以处理无效或其他情况。

答案 1 :(得分:0)

为什么不使用ISNULL检查日期?像,

SELECT *
FROM myView 
WHERE dateEntered >= ISNULL(startDate,GETDATE()) 
    AND dateEntered < ISNULL(endDate,DATEADD(1,DAY,GETDATE()))

然后,您可以将开始日期和结束日期作为参数传递给SSIS中的查询。

SELECT *
FROM myView 
WHERE dateEntered >= ISNULL(?,GETDATE()) 
    AND dateEntered < ISNULL(?,DATEADD(1,DAY,GETDATE()))

您可以在Execute SQL任务的参数部分指定这些参数。