从执行中选择* into #table(@query)

时间:2015-10-13 14:25:21

标签: database tsql azure-sql-database select-into

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

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

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

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

我收到以下错误:

  

关键字'execute'

附近的语法不正确

  

')'

附近的语法不正确

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

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

如果还有其他相关工作,请提供帮助。

1 个答案:

答案 0 :(得分: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

中查看结果