たぶん私は「午後」の瞬間を過ごしていますが、だれでも私が得る理由を説明できます
メッセージ102、レベル15、状態1、行2
')'付近の構文が正しくありません。
実行中
CREATE PROC DisplayDate
(@DateVar DATETIME)
AS
BEGIN
SELECT @DateVar
END
GO
EXEC DisplayDate GETDATE();
ストアドプロシージャの引数として関数呼び出しを渡すことはできません。代わりに、中間変数を使用します。
DECLARE @tmp DATETIME
SET @tmp = GETDATE()
EXEC DisplayDate @tmp;
Mitch Wheatのように、関数を渡すことはできません。
あなたの場合、事前に計算された値またはGETDATE()を渡す必要があります-デフォルト値を使用できます。たとえば、ストアドプロシージャを変更します。
ALTER PROC DisplayDate
(
@DateVar DATETIME = NULL
) AS
BEGIN
set @DateVar=ISNULL(@DateVar,GETDATE())
--the SP stuff here
SELECT @DateVar
END
GO
そして、試してください:
EXEC DisplayDate '2013-02-01 00:00:00.000'
EXEC DisplayDate
備考:ここでは、このパラメーターにNULL値が使用されていないと仮定しました。それ以外の場合-「1900-01-01 00:00:00.000」など、別の未使用の値を使用できます