我收到一个异常,声明“'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未提供的错误?
感谢您的时间。
答案 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