存储过程参数错误

时间:2012-11-28 07:01:46

标签: stored-procedures

我创建了一个简单的存储过程,如下所示:

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',这是未提供的。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

即使将@Salary变量标记为输出参数,也需要将@Salary变量作为输入变量提供给存储过程。

exec dbo.s5 @id, @salary

可以在以下link中阅读:

  

执行存储过程时,也可以为OUTPUT参数指定输入值。这允许存储过程从调用程序接收值,更改它或使用它执行操作,然后将新值返回给调用程序。 ......这通常被称为“传递参考能力。”