CREATE proc proc_InAndOut
(
 
@outParam int output,
 
@inParam nvarchar(50)
)
as
if exists(select * from Student where StudentName=@inParam)
begin
 
set @outParam=1;
end
else
begin
 
set @outParam=0;
end
GO 

带输入参数,返回数据表的存储过程

CREATE proc proc_getDataReader   
(   
    
@StudentName nvarchar(50),   
    
@inParam nvarchar(50)   
)   
as   
if exists(select * from Student where StudentName=@inParam)   
    
begin   
        
select * from Student   
    
end   
else   
    
begin   
        
select StudentName from Student   
    
end   
GO 

在查询分析器中执行带输出参数的存储过程

--declare @inParam nvarchar(50)--输入参数无需定义   
declare @outParam int--输出参数必须定义   
--
这里的参数次序与存储过程的参数次序要一致.   
exec proc_InAndOut @outParam output,@inParam='tree'  
select @outParam  

上面的代码可以这样去理解和实现:

declare @str int--输出参数必须定义   
--
这里的参数次序与存储过程的参数次序要一致. 
exec proc_InAndOut @outParam=@str output,@inParam='tree'  
--或简写成 
exec proc_InAndOut @str output,@inParam='tree'   
--或简写成 
exec proc_InAndOut @str output,'tree' 
 
select @str 

 在查询分析器中执行带输入参数,返回数据行的存储过程

exec proc_getDataReader @StudentName='jianbao',@inParam='tree'  
--也可简写成如下形式
exec proc_getDataReader 'jianbao','tree'  

 

posted on 2009-06-02 16:46  钱途无梁  阅读(1792)  评论(0编辑  收藏  举报