请教OUTPUT参数输入值

请问OUTPUT参数输入值OUTPUT是输出参数吧,而且还可以向存储过程传入值,请举个例子讲解一下输入值的情况。特

请问OUTPUT参数输入值
OUTPUT是输出参数吧,而且还可以向存储过程传入值,请举个例子讲解一下输入值的情况。
特别是MSDN上讲的“传址调用功能”,看不懂

[解决办法]

SQL code
CREATE PROC GET_NAME(@ID INT,@NAME VARCHAR(30) OUTPUT)ASSELECT @NAME=NAME FROM LOGIN WHERE ID=@IDGODECLARE @NAME VARCHAR(30),@ID INTSET @ID=1EXEC GET_NAME @ID,@NAME OUTPUTSELECT @NAME
[解决办法]
探讨
OUTPUT是输出参数吧,而且还可以向存储过程传入值,请举个例子讲解一下输入值的情况。
特别是MSDN上讲的“传址调用功能”,看不懂

[解决办法]
很敬佩楼主的学习钻研精神
SQL code
--无output测试create proc test(@galen varchar(20) output)asset @galen=@galen+'galenkeny'godeclare @keny varchar(100) set @keny='test';exec test @keny select @keny -->结果集---------------------------------/*test*/-- drop procedure test-->有output测试create proc test(@galen varchar(20) output)asset @galen=@galen+'galenkeny'godeclare @keny varchar(100) set @keny='test';exec test @keny outputselect @keny -->结果集---------------------------------/*testgalenkeny*/
[解决办法]
搞不明白,LZ为什么要把output参数当输入参数用,感觉没必要,虽然可以这样做。下面是一个例子
SQL code
CREATE PROC testProc(@ID INT,@NAME VARCHAR(30) OUTPUT)ASBEGIN    SELECT @NAME --这句可以查看传入的参数值    ;WITH t as    (        select 1 id,'Jason Lin' fullname        union all        select 2,'Kira Dong'        union all        select 3,'Lisa Qiu'    )        SELECT @NAME=fullname FROM t WHERE id=@ID --这句是给ouutput参数赋值,以便回传给调用方ENDGODECLARE @NAME VARCHAR(30),@ID INTSET @ID=1SET @NAME='xiaobai' --把output参数当普通输入参数使用,给其赋值EXEC testProc @ID,@NAME OUTPUTSELECT @NAME --这句是执行完存储后,存储回传的值。