2012-02-17 18 views
1

これに対する回答を探していて、それを見つけることができません。 Visual Studio 2005とSQL Server 2005を使用してSSISパッケージをセットアップし、今日の日付(GETDATE())をパラメータとしてストアドプロシージャに送信したいと考えています。私はパラメータを送信する方法を見つけることができますが、そのパラメータをGETDATE()に宣言する方法はありません。これも可能ですか?SQL Server 2005 SSIS経由でGETDATE()をパラメータとして使用してストアドプロシージャを実行します。

+1

、あなただけ)(GETDATE 'でSQLクエリを実行する代わりに'のパラメータ最初の – Lamak

+0

@Lamakに割り当てることができます実際には今日の日付が必要な2つの異なるストアドプロシージャがあり、SSISに1つの変数を作成して実行時にすべてに渡すことを望んでいました。私はちょうど1つが他のものに移動するためにそれを行う方法を理解できませんでした。 – DataGirl

答えて

3

GETDATE()のように常に評価する必要がある場合は、Data TypeがDateTimeのGetDateと呼ばれるSSISで変数を作成します。右クリックしてプロパティウィンドウでEvaluateAsExpression = Trueをチェックし、式の場合はGETDATE()

を使用して、SQL実行タスクまで変数を配線します。

これは瞬時に必要でない場合は、システムスコープ変数の1つを見てください。おそらく、Execute SQLタスクのContainerStartTimeで十分です。私の価値観はStartTimeなので、パッケージが実行を開始したときのことですが、どれが最適かを知ることができます。

2

考えられる回避策はありますか?ストアドプロシージャのパラメータのデフォルト値をGETDATE()に設定し、そのパラメータを指定せずにGETDATE()を呼び出すことができます。あなたが本当にあなたのストアドプロシージャにパラメータとして() `` GETDATEを渡す必要がある場合は

CREATE PROCEDURE YourProc 
    @InputDate DATETIME = GETDATE() 
AS 
... 
関連する問題