2

我创建了一个动态查询,它返回表中的列数:

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

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

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

我收到以下错误:

关键字“执行”附近的语法不正确

')' 附近的语法不正确

但是运行此命令会准确返回结果:execute(@query)

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

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

4

1 回答 1

1

尝试使用 FQ 表名而不是#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中查看结果

于 2015-10-13T15:56:17.540 回答