123
返回列表 发新帖
楼主: haitao

请问SQL如何将存储过程返回的记录集接受过来继续使用?

[复制链接]
论坛徽章:
117
ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322015年新春福章
日期:2015-03-04 14:19:11马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14比亚迪
日期:2013-09-18 09:31:09迷宫蛋
日期:2013-06-05 13:48:452013年新春福章
日期:2013-02-25 14:51:24
21#
发表于 2004-8-31 12:40 | 只看该作者

Re: 谢谢!

最初由 haitao 发布
[B]临时表好像是可以插入!

那么,现在的麻烦就是 如何便捷地得到sp_who2输出的表结构定义了
因为建临时表需要完整的表结构定义
而 select * into #tmptable from atable 就好了,不用预先写定义 [/B]


谁说建临时表需要完整的表结构定义?
完整的表结构定义是性能优化的好方式,但不是必须要的·

直接INSERT #temp EXEC sp_getresults
#temp可以不用定义的!

使用道具 举报

回复
论坛徽章:
7
咸鸭蛋
日期:2012-06-11 16:11:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:072013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31喜羊羊
日期:2015-03-10 14:01:43喜羊羊
日期:2015-03-16 11:00:26
22#
 楼主| 发表于 2004-8-31 13:29 | 只看该作者

你是什么版本?我是sql2000中文版

insert #tbaaa exec sp_who2
truncate table #tbaaa
drop table #tbaaa

insert #temp exec sp_getresults
均报错:
服务器: 消息 208,级别 16,状态 1,行 1
对象名 '#temp' 无效。

使用道具 举报

回复
论坛徽章:
7
咸鸭蛋
日期:2012-06-11 16:11:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:072013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31喜羊羊
日期:2015-03-10 14:01:43喜羊羊
日期:2015-03-16 11:00:26
23#
 楼主| 发表于 2004-8-31 15:07 | 只看该作者

难道sp_who和sp_who2有很大不同?

先 EXEC sp_addlinkedserver  'dbs_2' ...
再 select * from OPENQUERY(dbs_2, 'exec master.dbo.sp_who')  where ... order by ... 都可以了!

但是 select * from OPENQUERY(dbs_2, 'exec master.dbo.sp_who2')
就不对了:
服务器: 消息 7357,级别 16,状态 2,行 1
未能处理对象 'exec master.dbo.sp_who2 '。OLE DB 提供程序 'SQLOLEDB' 指出该对象中没有任何列。
OLE DB 错误跟踪[Non-interface error:  OLE DB provider unable to process object, since the object has no columnsProviderName='SQLOLEDB', Query=exec master.dbo.sp_who2 ']。

使用道具 举报

回复
论坛徽章:
105
萤石
日期:2014-04-06 09:24:42天枰座
日期:2015-07-22 11:25:542014年世界杯参赛球队: 阿尔及利亚
日期:2014-07-10 09:12:26马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11
24#
发表于 2004-8-31 18:24 | 只看该作者

Re: 你是什么版本?我是sql2000中文版

最初由 haitao 发布
[B]insert #tbaaa exec sp_who2
truncate table #tbaaa
drop table #tbaaa

insert #temp exec sp_getresults
均报错:
服务器: 消息 208,级别 16,状态 1,行 1
对象名 '#temp' 无效。 [/B]

我的结果和你的相同。你不如用sp_helptext '过程名'看看过程代码,修改一下自己用。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表