【问题标题】:Querying the resultset of a stored proc [duplicate]查询存储过程的结果集[重复]
【发布时间】:2013-05-19 00:50:12
【问题描述】:

是否可以查询存储过程的结果集?

我只有对存储过程的执行权限,当我运行存储过程时,它会显示数百万行。我需要查询存储过程的结果集。

什么是最有效/最简单的方法?

仅供参考,我使用的是 SQL Server 2012。

【问题讨论】:

  • 如果启用了临时分布式查询,您可以使用OPENROWSET。最有效的方法是编写一个只返回您需要的数据的查询。
  • 谢谢。让我尝试使用 openrowset。
  • Martin,我无权访问这些表格。我必须从存储的 proc 结果中查询。
  • 如果 openrowset 不起作用,另一个选项是 insert ... exec 将结果放入表变量或临时表中,然后从中进行选择。

标签: sql sql-server sql-server-2012


【解决方案1】:

如果您知道结果是什么样的,那么您可以将它们放入一个表格中。先创建表,然后使用exec()exec sp_executesql

例如:

declare @lines table (id int identity(1, 1) primary key, line varchar(8000));

insert into @lines(line)
    exec sp_executesql N'sp_helptext ''information_schema.tables''';

select *
from @lines
order by id; 

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多