【发布时间】:2010-03-25 13:38:56
【问题描述】:
我需要在 select 语句中访问存储过程的结果,即:
SELECT * FROM [dbo].[sp_sample]
在 SQL_Server 2005 中。
【问题讨论】:
标签: sql sql-server sql-server-2005 tsql stored-procedures
我需要在 select 语句中访问存储过程的结果,即:
SELECT * FROM [dbo].[sp_sample]
在 SQL_Server 2005 中。
【问题讨论】:
标签: sql sql-server sql-server-2005 tsql stored-procedures
这是不可能的。您必须创建一个临时表来存储结果。
Create Table #tmp
(
...
)
Insert into #tmp
Exec dbo.StoredProcedure
表结构必须与存储过程的输出相匹配。
【讨论】:
@Barry is right 您需要先创建一个临时表并插入其中,然后在您的选择中加入该表。
但是,存储过程之间共享数据的方式有很多,请参阅这篇优秀的文章:How to Share Data Between Stored Procedures by Erland Sommarskog
一种可能对您有用的方法是“共享”一个临时表。 #temp 表是在 Parent 过程中创建的,可供 Child 使用:http://www.sommarskog.se/share_data.html#temptables
【讨论】: