存储过程中的输出参数不起作用

时间:2013-05-22 11:48:33

标签: sql sql-server-2005 stored-procedures

我是存储过程的新手。

我有简单的存储过程,用于添加两个数字,如下所示:

alter proc simpleProc 
(
    @Tax int ,
    @TotalAmount int,
    @sum int output     
)
as
BEGIN
set @sum=(@Tax+@TotalAmount)
print @sum
END

正如我们在@sum中看到的那样是输出参数。

但是当我按如下方式执行时:

exec simpleProc 908,82 

它给了我以下错误:

  

Msg 201,Level 16,State 4,Procedure simpleProc,Line 0
  过程或函数'simpleProc'需要参数'@sum',这是未提供的。

我已经提到@sum作为输出参数,但是还要求我输入@sum参数。

可能是什么错误?

2 个答案:

答案 0 :(得分:2)

是的,你没有提供输出参数。 试试这个

    Declare @op int
    exec simpleProc 908,82,@op output
    //use op variable

答案 1 :(得分:1)

您应该为程序提供一个可以存储输出的变量

declare @sum int
exec simpleProc 908, 82, @sum output