【发布时间】:2013-07-19 12:37:02
【问题描述】:
当我运行以下存储过程时,我得到:
`过程或函数 addQuestion 指定的参数过多。'
我认为原因是因为@qnum 在 INSERT 语句中,但没有在存储过程的声明部分声明为参数。
这是下面的存储过程:
CREATE PROCEDURE [dbo].[addQuestion](@surveyID INT, @question VARCHAR(255), @AnswerType CHAR(1), @CorrectAnswer NVARCHAR(50))
AS
DECLARE @qnum INT
SELECT @qnum = ISNULL(MIN(QuestionOrder),0)+1
FROM SurveyQuestions WHERE SurveyID = @surveyID
INSERT INTO SurveyQuestions(SurveyID, Question, AnswerType,CorrectAnswer,QuestionOrder)
VALUES (@SurveyID, @Question, @AnswerType,@CorrectAnswer,@qnum)
我该如何解决这个问题?
我认为修复它的关键在于先修复这个位:
DECLARE @qnum INT
SELECT @qnum = ISNULL(MIN(QuestionOrder),0)+1
FROM SurveyQuestions WHERE SurveyID = @surveyID
非常感谢
【问题讨论】:
-
您可以发布执行此过程的调用吗?您几乎可以肯定向它传递了太多参数。
-
@AdrianWragg,它正在工作。我在应用程序中传递了太多参数。如果你能把你的解决方案放在我相信你的地方,那就太好了。谢谢
标签: sql-server sql-server-2005 sql-server-2008-r2