2012-02-07 4 views
0

"'UserReportsAdd'にはパラメータ '@Date'が指定されていないという例外が発生しました。[日付]フィールドの値として保存されていないSQL - getDate()

ここでは、ストアドプロシージャです:

CREATE PROCEDURE [dbo].[UserReportsAdd] 
     @ID BIGINT OUTPUT, 
     @Date datetime, 
     @ReportingUser bigint, 
     @ReportedUserID bigint, 
     @Description nvarchar (2000) 
    AS 
    BEGIN 
    SET NOCOUNT ON; 

    BEGIN 
    INSERT INTO UserReports (
     ReportingUser, 
     ReportedUserID, 
     [Description], 
     [Date] 
    ) 
     VALUES (
     @ReportingUser, 
     @ReportedUserID, 
     @Description, 
     getDate() 
    ) 
    END 

は、なぜ私は)私はinsert文でそれを定義し、それをのgetDate(の値を与えているとき@Dateが供給されていないエラーを取得されるだろうが、 ?

ありがとうございます。

+0

あなたの手順でデフォルト値を与えることができますいずれか

は日付を期待しています。日付が指定されていないと、その時点でエラーが発生します。 @dateパラメータを削除するか、オプションにする場合はデフォルト値を指定します。 –

答えて

0

ストアドプロシージャを呼び出すコードが@Dateパラメータを渡していません。あなたのSP内のコードはOKのようです。

例えば:

declare @id bigint 
declare @date datetime = getdate() -- this one is missing by the calling code 
declare @reportingUser bigint = 1 
declare @reportedUserId bigint = 1 
declare @description nvarchar(2000) = 'some description' 

exec [dbo].[UserReportsAdd] @id output, @date /* this is missing */, @reportingUser, @reportedUserId, @descripion 
3

それがパラメータとしてリストされています。それは通訳がその時点でチェックしているすべてのものです。必要なパラメータがありません。あなたは、パラメータブロックの外に移動し、以下のそれを宣言し、またはそれを宣言​​

関連する問題