日期:2014-05-17  浏览次数:20614 次

存储过程和游标
我现在有很多个select语句,每个select都返回一个结果集。我把这些select放在一个存错过程中。我的问题是,怎么通过游标把该存错过程返回的多个结果集遍历出来,要求每个结果集都分开,因为这些结果要返回给java程序使用。(在SQL Server中)
sql?server

------解决方案--------------------
每次select完一个语句用下面语句判断
select col.... from table1 where () 
if @@error<>0 
begin
   set @errNum=1
    goto errHandle
end

select col.... from table2 where () 
if @@error<>0 
begin
   set @errNum=2
    goto errHandle
end

select 0
return 

errHandle:
select @errNum

如果select 结果大于0,说明有错误.
------解决方案--------------------
如果两个结果集的列序及类型一致,那用union

如果不一样,那用一个中间表吧, java程序直接访问中间表
------解决方案--------------------
用临时表实现,在执行存储过程前创建临时表,存储过程中所有select ..改为
 insert into [临时表] select ..
存储过程执行后,直接查询临时表.