存储过程调用存储过程的问题

lanchong512 2005-11-05 03:43:21
如果存储过程A是select类型,返回的是个RecordSet,在存储B里面如何调用存储A返回的RecordSet?查了好多文档也没有找到答案,只是知道:
存储过程的3种传回值: 1.以Return传回整数 2.以output格式传回参数 3.Recordset
其中RecordSet好像是直接返回给客户端的,而前两个可以使用变量接收。
这是不是说当一个存储过程返回的是RecordSet时,另外一个是无法调用到返回的RecordSet?
又看到一个说法好像用cursor可以传出来,不知道如何实现?

以前没有写过存储过程,请各位大侠帮忙。
...全文
166 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytx98 2005-12-05
  • 打赏
  • 举报
回复
使用表变量应该也可以吧
liuri璇玑 2005-12-05
  • 打赏
  • 举报
回复
假设你的存储过程A,返回两个字段f1(varchar(20),f2 int

则:
create table #t(f1 varchar(20),f2 int)

insert #t exec A

以此类推
hwmfly 2005-12-05
  • 打赏
  • 举报
回复
关注,能否给出具体的代码,我用insert #t exec A报错
lanchong512 2005-11-05
  • 打赏
  • 举报
回复
了解了,如何创建零时表?其实是和创建普通表一样的只是需要加上一个# 例如:create table #t?
那么这个是存储过程调用存储过程的惟一方法吗?请继续深入探讨。
tianhxk 2005-11-05
  • 打赏
  • 举报
回复
当然这个#t需要先创建
tianhxk 2005-11-05
  • 打赏
  • 举报
回复
用这个就可以了 insert #t exec A
返回 recordset 可以直接这样被接收的
ReViSion 2005-11-05
  • 打赏
  • 举报
回复
用临时变量或是临时表就行
lanchong512 2005-11-05
  • 打赏
  • 举报
回复
顶一下,希望有人看到。
lanchong512 2005-11-05
  • 打赏
  • 举报
回复
临时表的范围为创建临时表的连接,如果临时表被创建于存储过程之中,则临时表的范围在存储过程之中,或者被该存储过程调用的任何存储过程之中。
那是不是需要创建一个全局的临时表?
两位这么回复是不是说一个存储过程是无法使用另外一个存储过程的RecordSet的?还有刚才说到的传出一个参数利用cursor可行吗?
liuri璇玑 2005-11-05
  • 打赏
  • 举报
回复
insert #t exec A
点点星灯 2005-11-05
  • 打赏
  • 举报
回复
select * into #t from dbo.PriContentSltBy

select * from #t

--将存储过程的结果放到临时表中。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧