Select * 从 execute(@query) 进入#table

Select * into #table from execute(@query)

我创建了一个动态查询,其中 returns 来自 table 的列数为:

set @query = 'select '+@cols+' from [Sample] '

现在我想通过执行这个查询来填充临时 table,当我尝试这个

select * into #table from execute(@query). 

我收到以下错误:

Incorrect syntax near the keyword 'execute'

Incorrect syntax near ')'

但是 运行 这个命令 returns 结果准确: execute(@query)

注意:我试过 sql-azure 不支持的 OPENROWSET。

如果有任何其他解决方法,请提供帮助。

尝试使用 FQ table 名称而不是#temptable:

 IF object_id('tempdb..temptable') IS NOT NULL DROP TABLE [tempdb].[dbo].[temptable] 
 DECLARE @query varchar(4000)
 SET @query = 'select '+ @cols +' into [tempdb].[dbo].[temptable] from [Sample]'

 EXECUTE (@query)

 SELECT * from [tempdb].[dbo].[temptable] 

结果请见SQLFiddle