OUTPUT是输出参数吧,而且还可以向存储过程传入值,请举个例子讲解一下输入值的情况。
特别是MSDN上讲的“传址调用功能”,看不懂
------解决方案--------------------
- SQL code
CREATE PROC GET_NAME(@ID INT,@NAME VARCHAR(30) OUTPUT)ASSELECT @NAME=NAME FROM LOGIN WHERE [email protected]GODECLARE @NAME VARCHAR(30),@ID INTSET @ID=1EXEC GET_NAME @ID,@NAME OUTPUTSELECT @NAME
------解决方案--------------------
------解决方案--------------------
很敬佩楼主的学习钻研精神
- SQL code
--无output测试create proc test(@galen varchar(20) output)asset @[email protected]+'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 @[email protected]+'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 [email protected] --这句是给ouutput参数赋值,以便回传给调用方ENDGODECLARE @NAME VARCHAR(30),@ID INTSET @ID=1SET @NAME='xiaobai' --把output参数当普通输入参数使用,给其赋值EXEC testProc @ID,@NAME OUTPUTSELECT @NAME --这句是执行完存储后,存储回传的值。