我使用EXEC语句执行返回表值的存储过程。我想将此语句的结果插入临时表中,但我不想先定义此临时表。这可能吗?
我正在思考SELECT * INTO #temp FROM ...
如何首先定义#temp
的方式。是否可以对EXEC语句的结果做同样的事情?
答案 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