2009-08-19 197 views
0

我有一個SSIS包,它使用SQL命令從視圖查詢數據。將查詢參數傳遞給SSIS

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命令中使用它?

回答

0

我最終使用/ SET將參數傳遞給了dtexec。

然後,我使用腳本任務來處理日期,以照顧無效或其他情況。

0

爲什麼不使用ISNULL檢查日期? Like,

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())) 

您可以在執行SQL任務的參數部分指定這些參數。