如何将存储过程的结果放入表变量中?

4
我正在使用 SQL Server 2005。
我的存储过程返回了100列,有10页。
我只需要返回其中的5列,不想复制10页的存储过程来创建新的存储过程。
我想避免定义一个有100列的新表变量! 我不想定义 LinkServer 并使用 OPENROWSET,因为服务器名称等信息不应该被硬编码。
有更简单/更好的方法吗?
如果有,如何编写它?以下代码无法工作:
select ID, Title, (the remaining 3 columns)
from exec dbo.sp_myName

1
你应该编写另一个存储过程,只返回你需要的10个结果。虽然可以通过 OPENROWSET 实现。 - Martin Smith
谢谢,但我不想硬编码服务器和数据库名称。已更新问题。如果可能的话,我不想重复存储过程。 - The Light
可能是http://stackoverflow.com/questions/7417881/retrieve-a-specific-column-from-a-stored-proc-result-set-into-a-temp-table的重复问题,尽管这个问题只涉及获取一个列... - David W
1个回答

1

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

Insert Into #TempTable
Exec dbo.sp_myName

Select    ID, Title,...
From      #TempTable

这将输出到一个临时表,而不是一个表变量。 - Suncat2000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接