SQL SERVER2000存储过程怎样调用另外一个储存过程的结果集?

我已有一个存储过程,通过“EXECProc1姓名”能返回一条字段很多的结果集(例如姓名,年龄,结婚次数.....)。现在我想再建一个存储过程,查询一个表,每次取出一个关键... 我已有一个存储过程,通过“EXEC Proc1 姓名”能返回一条字段很多的结果集(例如姓名,年龄,结婚次数.....)。

现在我想再建一个存储过程,查询一个表,每次取出一个关键词,循环调用刚才那个存储过程,大致是:
Select 姓名 from 名单库
for n=1 to rowcount
{ name=row[n][0]
EXEC Proc1 姓名
n++
}//以上语法肯定错误,只为说明问题
最后返回一个完整的数据表:
姓名 年龄 结婚次数 离婚次数 再婚次数 再了又离次数 所有老婆年龄和.......)。
张三 80 8 5 2 3 78.....
李四 60 7 5 9 9 76.....
王五 52 9 4 5 4 92.....
..............
怎样写这个存储过程?
展开
 我来答
J_LD_P
2012-04-18 · TA获得超过109个赞
知道答主
回答量:103
采纳率:100%
帮助的人:43.1万
展开全部
1.把你的过程改成函数,用outer apply 关联就可以了,这种方法不用游标。
create function fn_fn1(姓名)
return table
as
begin
return(
select * from table
)
end
select * from 名单库 a outer apply dbo.fn_pro1(a.姓名)
2.把两个过程合并成一个,根据你的描述是可以做到的。用name连接。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tkbh
2012-04-11 · TA获得超过531个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:110万
展开全部
建个临时表,将存储过程的结果插入,再循环select 完了删除临时表。以上在循环内。。你看是否可行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lokily2010
2012-04-11 · TA获得超过284个赞
知道小有建树答主
回答量:776
采纳率:100%
帮助的人:587万
展开全部
用游标
更多追问追答
追问
请问能说具体点吗?
能不用游标吗?用临时表?
追答
--声明一个游标  
Declare cur_name Cursor for
Select 姓名 from 名单库
declare @name
--打开游标
  Open cur_name
  --循环并提取记录
  Fetch Next From cur_name Into @name
  While ( @@Fetch_Status=0 )  
begin
   -- 调用你的另一sp
     Fetch Next From cur_name into @rpisall
   end 
  --关闭游标  
   Close cur_name
  --释放游标
 Deallocate cur_name

用临时表可以,但是效率。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式