如何用select 对存储过程的返回记录集进行再次查询??

aminic 2003-10-29 04:07:12
如何用select 对存储过程的返回记录集进行再次查询??

比如这样

select 字段名1 from 存储过程名 where....

...全文
113 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zarge 2003-10-29
  • 打赏
  • 举报
回复
用openrowset

SELECT a.*
FROM OPENROWSET('SQLOLEDB','seattle1';'manager';'MyPass','sp_test') AS a
GO
LoveSQL 2003-10-29
  • 打赏
  • 举报
回复
不用临时表没办法保存中间的结果啊
没想出更好的办法。
insert into #tb exec 存储过程名

select * from #tb
pengdali 2003-10-29
  • 打赏
  • 举报
回复
不行,只可以用临时表得到。
aminic 2003-10-29
  • 打赏
  • 举报
回复
不用临时表不行么??
zjcxc 元老 2003-10-29
  • 打赏
  • 举报
回复
举个例子:

--存储过程
create proc p_test
as
select name,xtype from sysobjects
go

--对存储过程的结果再使用:
--创建临时表,保存存储过程返回的结果:
create table #tb(name sysname,xtype varchar(10))
--调用存储过程
insert into #tb exec p_test

--对结果再查询
select * from #tb where xtype='U'

--删除临时表
drop table #tb
hkzhou 2003-10-29
  • 打赏
  • 举报
回复
学习
zjcxc 元老 2003-10-29
  • 打赏
  • 举报
回复
要用临时表:

create table #tb(与存储过程返回的结果集的定义一样)

insert into #tb exec 存储过程名

select * from #tb

drop table #tb
lynx1111 2003-10-29
  • 打赏
  • 举报
回复
妙!
txlicenhe 2003-10-29
  • 打赏
  • 举报
回复

create table #tmp (字段 字段类型)
insert #tmp Exec procedureName
Select * from #tmp where ...

34,874

社区成员

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

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