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

rog*_*wan 7 sql sql-server-2008-r2

我有这个存储过程:

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

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

形式参数"@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
Run Code Online (Sandbox Code Playgroud)

但它返回一个空值.

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

dav*_*sam 10

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

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
Run Code Online (Sandbox Code Playgroud)

  • 如果您可以添加一些有关为什么可以解决问题的信息,这将非常有用,谢谢! (2认同)