日期:2014-05-17  浏览次数:20451 次

请问,理解OUTPUT参数
OUTPUT参数是传出值,可是下面的参数,并非OUTPUT参数,不也能传出值吗?OUTPUT的作用何处体现呢?

DECLARE @年龄 INT;
SELECT @年龄 = 年龄 FROM 客户表 WHERE 姓名 = '熊俊';
PRINT @年龄;

------解决方案--------------------
帅哥,不能这样理解的,output用在存储过程中,作为输出参数时,主要是将当前值传回给应用程序
如你写了个分页程序,则你可能先出一些符合条件的记录,也需要传个总的计录数给前台程序
此时的行数就适合用output参数,而列表就是select * from ...


如果是非out参数,也可以输出值的,只是用处不一样而已,如
SQL code

create proc p_t(
@年龄 int
)
as
select @年龄
go
DECLARE @年龄 INT;
SELECT @年龄 = 年龄 FROM 客户表 WHERE 姓名 = '熊俊';
exec p_t @年龄

------解决方案--------------------
是过程和函数里面需要返回值给外面用。有OUTPUT。F1联机帮助。
你那个叫查询赋值。不是OUTPUT。
------解决方案--------------------
如果在过程定义中为参数指定 OUTPUT 关键字,则存储过程在退出时可将该参数的当前值返回至调用程序。若要用变量保存参数值以便在调用程序中使用,则调用程序必须在执行存储过程时使用 OUTPUT 关键字。 
output的作用体现在当有另外的存储过程或者调用程序的变量需要调用参数当前值的时候就需要用output

看下这个 细化解析:如何使用OUTPUT参数返回数据