当前位置: 代码迷 >> Sql Server >> 请教OUTPUT参数输入值
  详细解决方案

请教OUTPUT参数输入值

热度:25   发布时间:2016-04-27 11:17:27.0
请问OUTPUT参数输入值
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
------解决方案--------------------
探讨
OUTPUT是输出参数吧,而且还可以向存储过程传入值,请举个例子讲解一下输入值的情况。
特别是MSDN上讲的“传址调用功能”,看不懂

------解决方案--------------------
很敬佩楼主的学习钻研精神
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 --这句是执行完存储后,存储回传的值。
  相关解决方案