我有一个存储过程:
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”不是作为输出参数声明的,而是在请求的输出中传递的实际参数。
我试图像这样将@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
但是它返回一个空值。
有什么解决办法吗?提前谢谢。
发布于 2015-08-25 23:35:00
存储过程中参数的顺序是,首先使用输入参数,然后使用输出参数:-您可以看到这个链接,以获得存储过程的更多知识:-
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
发布于 2017-02-01 11:19:40
我用不同的方法修正了这个错误。
发布于 2022-11-07 23:59:55
在我的例子中,我最后声明了OUTPUT
参数,但也得到了类似的异常。
在输出参数之后,我将默认参数(如@var FLOAT = null
)移到末尾,然后开始工作。
https://stackoverflow.com/questions/32219733
复制