我创建了一个简单的存储过程,如下所示:
Alter Proc dbo.s5
(
@id int = 14,
@Salary int output
)
As
Begin
--Declare @Salary int
set @Salary = (select Salary
from dbo.EmpInf
where EmpId = @id)
print @Salary
--Return @Salary
End
在执行此存储过程期间,出现此错误:
Msg 201,Level 16,State 4,Procedure s5,Line 0
过程或函数's5'需要参数'@Salary',这是未提供的。
我做错了什么?
答案 0 :(得分:1)
即使将@Salary变量标记为输出参数,也需要将@Salary变量作为输入变量提供给存储过程。
exec dbo.s5 @id, @salary
可以在以下link中阅读:
执行存储过程时,也可以为OUTPUT参数指定输入值。这允许存储过程从调用程序接收值,更改它或使用它执行操作,然后将新值返回给调用程序。 ......这通常被称为“传递参考能力。”