将sp_executesql的结果插入临时表

时间:2015-07-10 15:47:24

标签: sql sql-server

我在SQL中使用动态查询,它返回一个我需要插入临时表的大型数据集。

是否     SELECT INTO #tmp from EXEC sp_executesql @query work?

我确实尝试了但是我收到错误'关键字' EXEC'附近的语法不正确

我知道它可以使用Insert into,但我不想手动创建表,因为它是一个包含大量列的大表。有没有必要手动创建临时表?

2 个答案:

答案 0 :(得分:0)

不,它不起作用你不能这样做。但是,在动态SQL创建一个像普通的临时表之前,并在动态SQL中插入到该表之前,解决这个问题。然后,当你完成后,你将填满表。

答案 1 :(得分:0)

IF OBJECT_ID('tempdb..##TmepTable') IS NOT NULL DROP TABLE ##TmepTable
CREATE TABLE ##TmepTable (TmpCol CHAR(1))
DECLARE @SQL NVARCHAR(max) =' IF OBJECT_ID(''tempdb..##TmepTable'') IS NOT NULL DROP TABLE ##TmepTable 
                        SELECT * INTO ##TmepTable  from [MyTableName]'
EXEC sp_executesql @SQL

SELECT Alias.* FROM  ##TmepTable as Alias
IF OBJECT_ID('tempdb..##TmepTable') IS NOT NULL DROP TABLE ##TmepTable