2012-02-17 84 views
1

我一直在尋找對此的答案,我無法找到它。我想使用Visual Studio 2005和SQL Server 2005建立一個SSIS包,將今天的日期(GETDATE())作爲參數發送到存儲過程。我可以找到如何發送參數,但不知道如何聲明該參數爲GETDATE()。這甚至有可能嗎?SQL Server 2005使用GETDATE()作爲參數通過SSIS運行存儲過程

+1

如果你真的需要通過'GETDATE()'作爲參數傳遞給您的存儲過程,你可以直接執行SQL查詢它'GETDATE()',而不是將其分配給一個參數第一 – Lamak 2012-02-17 20:37:35

+0

@Lamak ,我實際上有幾個不同的存儲過程,都需要今天的日期,我希望在SSIS中創建一個變量,並在運行時將它們傳遞給所有變量。我只是無法弄清楚如何爲一個人轉向其他人。 – DataGirl 2012-02-17 21:15:45

回答

3

如果您需要持續評估時間,例如GETDATE(),那麼請在數據類型爲DateTime的情況下在SSIS中創建名爲GetDate的變量。右鍵單擊並在屬性窗口中,檢查EvaluateAsExpression = True和表達式,使用GETDATE()

現在將該變量連接到執行SQL任務。

如果您不需要這一刻,請查看使用系統範圍變量之一。執行SQL任務的ContainerStartTime可能就足夠了。我的價值是StartTime,就像包開始執行時那樣,但你會知道哪一個最適合你。

2

要考慮的一種可能的解決方法。您可以使GETDATE()成爲存儲過程中參數的默認值,然後在沒有該參數的情況下調用它。

CREATE PROCEDURE YourProc 
    @InputDate DATETIME = GETDATE() 
AS 
...