create procedure [dbo].[basic_und6] (@name varchar(500), @email varchar(500), @result int out)
as
begin
Select @result=COUNT(*) from tbl_Students
where Firstname= @name and Email=@email
print @result
end
下面给出了我运行以执行存储过程的查询
**declare @result1 int
execute basic_und6 Amit,'amit@abc.com',@result1
print @result1**
我得到结果为1。
但根据我的理解,它应该显示两个1&#39>
第一个来自存储过程打印,第二个来自具有print语句的查询。
答案 0 :(得分:2)
将执行语句修改为:
declare @result1 int
execute basic_und6 Amit,'amit@abc.com', @result1 OUTPUT
print @result1
这是因为您没有指定必须返回输出值的变量。调用语句必须通过显式使用OUTPUT关键字来完成此操作。更多信息here
如果在过程定义中为参数指定OUTPUT关键字,则存储过程可以在存储过程退出时将参数的当前值返回给调用程序。要将参数值保存在可在调用程序中使用的变量中,调用程序在执行存储过程时必须使用OUTPUT关键字。
答案 1 :(得分:0)
不,它只会显示一个1 当我们在变量中选择一个值时,行计数将不会显示