执行一个存储过程,能否实现同时返回几个值和行集?
执行一个存储过程,能否实现同时返回几个值和行集? 
 例如我要同时返回table1中的字段的2个值,同时返回table2的10行(每行是有多个字段的). 
 如何将这些结果在程序中分别获取出来?
------解决方案--------------------create procedure proc_name 
 @ret1 int output, 
 @ret2 varchar(20) output 
   as    
 set nocount on 
 select top 1 @ret1=field1,@ret2=field2 from table1   
   select   top 10 *   from   table2 
 go   
 --调用 
 declare @r1 int 
 declare @r2 varchar(20)   
 exec proc_name @r1 output,@r2 output 
 print @r1 
 print @r2     
------解决方案--------------------想同时获得输出参数的值是不可能的   
 在存储过程里面如果有结果集又有输出参数,那么必须等到DataReader关闭以后才能得到输出参数的值,   
 注意虽然很麻烦但是你少连接了一次数据库,节省了许多开销,也是很值得的
------解决方案--------------------是union all 打错 
  有点像C#中的meger 
 如你的列:select * from table  
 结果 
  id ,col1,col2 
  1   qw   qg 
  2   eg   ge   
 假设你的输出参数为@ret1,@ret2 
 就 select * from table  union all 
  select 0,@ret1,@ret2   
 结果就会 
 id ,col1,col2 
  1   qw   qg 
  2   eg   ge 
  0  @ret1 @ret2     
 我也刚学C#  以上只是本人的想法~