【问题标题】:How to put the result of a stored procedure into a table variable?如何将存储过程的结果放入表变量中?
【发布时间】:2016-12-07 03:13:10
【问题描述】:

我使用的是 SQL Server 2005。

我的存储过程返回 100 列并有 10 页。

我只需要返回 5 列,并且不想通过创建新的存储过程来复制 10 页的存储过程。

我想避免定义一个包含 100 列的新表变量!而且我想避免定义 LinkServer 并使用 OPENROWSET 因为服务器名称等不应该是硬编码的。

有没有更简单/更好的方法?

如果有,怎么写?下面的代码不起作用:

select ID, Title, (the remaining 3 columns)
from exec dbo.sp_myName

【问题讨论】:

  • 您应该编写另一个只返回您需要的 10 个的存储过程。不过可以通过OPENROWSET 进行。
  • 谢谢,但我不想硬编码服务器和数据库名称。更新了问题。如果可能,我不想复制存储过程。
  • stackoverflow.com/questions/7417881/… 的可能重复项,虽然这个问题是指只获得一列....

标签: sql-server tsql variables stored-procedures


【解决方案1】:

您可以创建一个包含存储过程返回的所有列的临时表,然后使用:

Insert Into #TempTable
Exec dbo.sp_myName

Select    ID, Title,...
From      #TempTable

【讨论】:

  • 输出到一个临时表,而不是一个表变量。
猜你喜欢
  • 2020-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2011-07-08
相关资源
最近更新 更多