【问题标题】:select top 0 * INTO #temp from stored procedure从存储过程中选择前 0 * INTO #temp
【发布时间】:2013-01-06 11:13:44
【问题描述】:
select top 0 * INTO #temp from stored procedure

需要根据存储过程返回的数据类型的结构创建临时表。 使用sql server 2000,2005,0r 2008

【问题讨论】:

  • 一些不错的post

标签: sql sql-server select stored-procedures


【解决方案1】:

你不能这样做。要从存储过程中获取结果,您必须首先定义结果的结构:

create table #temp ( . . . );
insert into #temp
    exec(stored procedure)

如果您检查 SELECT 语句 (here) 的语法,您将看到没有运行存储过程的参考。

也许您应该发布另一个问题来描述您正在尝试做什么。为什么存储过程会返回不同的结果格式?

【讨论】:

  • 感谢您的回复,我想从存储过程创建结构,因为作为 sql 开发人员,我们大部分时间都使用临时表,而这个临时表是存储过程的克隆结构,大部分时间存储过程返回很多列并且创建这种类型的结构变得冗长的过程,但是我正在做的解决这个问题是: 1. 创建原始 SP 的克隆副本 2. 更改克隆 SP 以便它打印 QUERY 3. 然后修改这个查询使用 SELECT TOP 0 * INTO from this query
  • 您可以采取其他方法,例如返回 XML 或使用单独的存储过程(或参数)返回结构,然后动态创建它。
  • 我从来没有使用过XML,你能提供一些例子或链接吗?
  • Erland Sommarskog 在sommarskog.se/share_data.html 上进行了关于共享存储过程数据的精彩讨论。
猜你喜欢
  • 2012-04-25
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多