在不知道结果模式的情况下,将EXEC语句的结果插入临时表中

时间:2015-12-04 18:46:46

标签: sql-server tsql select insert exec

我使用EXEC语句执行返回表值的存储过程。我想将此语句的结果插入临时表中,但我不想先定义此临时表。这可能吗?

我正在思考SELECT * INTO #temp FROM ...如何首先定义#temp的方式。是否可以对EXEC语句的结果做同样的事情?

1 个答案:

答案 0 :(得分:0)

以下是您正在寻找的解决方案 -

exec sp_configure 'show advanced option',1
reconfigure
go
exec sp_configure 'ad hoc distributed queries',1
reconfigure
go

- 如果没有参数,请使用此 -

select * into #a
from openrowset('sqlncli','server=localhost;trusted_connection=yes','exec dbo.yourprocedure')

- 如果存储过程中有参数,请使用此---

declare @sql nvarchar(max)
declare @param1 varchar(100)

set @sql = 'select * into #a
from openrowset(''sqlncli'',''server=localhost;trusted_connection=yes'',''exec dbo.yourprocedure ''' + @param1 + ')'

exec sp_executesql @sql