首页 文章

形式参数“@mode”未声明为OUTPUT参数,而是在请求的输出中传递的实际参数

提问于
浏览
4

我有这个存储过程:

ALTER PROCEDURE spCertificationType 
    @result nvarchar(15) output,
    @mode int 
AS
BEGIN
    if @mode = 1
    begin
        exec spGeneratedID 2, @result output
        print @result
    end
END

但是当我试图执行它时,它有这个错误

形式参数“@mode”未声明为OUTPUT参数,而是在请求的输出中传递的实际参数 .

我试着将 @mode 设置为这样的输出:

ALTER PROCEDURE spCertificationType 
    @result nvarchar(15) output,
    @mode int output
AS
BEGIN
    if @mode = 1
    begin
        exec spGeneratedID 2, @result output
        print @result
    end
END

但它返回一个空值 .

对此有任何修复?提前致谢 .

2 回答

  • -1

    存储过程中的参数序列是首先使用输入参数然后使用输出参数: - 您可以看到此链接以获取有关存储过程的更多信息: -

    http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Write-a-Stored-Procedure-in-SQL

    ALTER PROCEDURE spCertificationType 
    
         @mode int,
         @result nvarchar(15) output
     AS
     BEGIN
         if @mode = 1
       begin
        exec spGeneratedID 2, @result output
        print @result
       end
    END
    
  • 8

    我以不同的方式修复了这个错误 .

    • 我在SP中的参数后删除了OUTPUT语句 .

    • 然后我得到了错误 .

    • 然后我回到SQLDataSource配置数据源向导并再次执行这些步骤 . 我发现更改SP使向导删除了与之后具有OUTPUT的参数关联的设置 .

相关问题