SQL - getDate()未保存为[Date]字段的值

时间:2012-02-07 17:53:21

标签: sql stored-procedures

我收到一个异常,声明“'UserReportsAdd'需要参数'@Date',这是未提供的。”

这是存储过程:

    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语句中定义@Date并给它getDate()的值时,为什么我会收到@Date未提供的错误?

感谢您的时间。

2 个答案:

答案 0 :(得分:3)

它被列为参数。这就是所有解释器在那时检查 - 有一个必需的参数没有得到值。

您可以将其移出参数块并在下面将其声明,或者在声明@Date = GETDATE()

中为其指定默认值

答案 1 :(得分:0)

调用存储过程的代码未传递@Date参数。 SP中的代码似乎没问题。

e.g:

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