SQLジョブとDateTimeパラメーター
-
01-10-2019 - |
質問
別の開発者は、毎月SQLジョブとして実行するように設定されたストアドプロシージャを作成しました。 DateTimeの1つのパラメーターが必要です。ジョブまたはクエリウィンドウでそれを呼びかけようとすると、エラーが発生します Incorrect syntax near ')'
. 。それを実行するための呼び出しは次のとおりです。
exec CreateHeardOfUsRecord getdate()
のようなハードコード化された日付を与えると exec CreateHeardOfUsRecord '4/1/2010'
正常に動作します。なぜ私が使えないのか考えています getdate()
この文脈で?ありがとう。
解決
execで渡されたパラメーター 定数または変数のいずれかである必要があります. 。 getDate()は関数として分類されます。 getDate()の結果を保持するために変数を宣言し、それをストアドプロシージャに渡す必要があります。
供給された値は、定数または変数でなければなりません。関数名をパラメーター値として指定することはできません。変数は、@@ spidなどのユーザー定義またはシステム変数にすることができます。
他のヒント
[ { EXEC | EXECUTE } ]
{
[ @return_status = ]
{ module_name [ ;number ] | @module_name_var }
[ [ @parameter = ] { value
| @variable [ OUTPUT ]
| [ DEFAULT ]
}
一定の値または変数、またはデフォルトの句のみを渡すことができます
やってみよう:
create procedure xy_t
@p datetime
as
select @p
go
exec xy_t GETDATE()
出力:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ')'.
convert(varchar、getdate()、101)を合格してみてください
ここでKMのコードを使用することはそれを行う方法です
create procedure xy_t
@p datetime
as
select @p
go
declare @date datetime
set @date = getdate()
exec xy_t @date
所属していません StackOverflow