从Execute命令插入临时表

Dan*_*ham 7 sql sql-server insert temporary execute

我需要使用execute命令将select语句中的数据插入临时表.

if OBJECT_ID('tempdb..#x') is not null
drop table #x

Create Table #x(aaa nvarchar(max))

declare @query2 nvarchar(max)
set @query2 = 'SELECT [aaa] from IMP_TEMP'

INSERT #x
SELECT [aaa] from IMP_TEMP -- THIS WORKS
SELECT *from #x

INSERT #x
exec @query2 -- THIS DOES NOT WORKS, WHY?
SELECT *from #x
Run Code Online (Sandbox Code Playgroud)

Nen*_*vic 9

你只需要围绕@query2变量括号.EXEC命令是执行存储过程,而EXEC()函数是用于执行动态sql作为参数.

INSERT #x
exec (@query2)
SELECT *from #x
Run Code Online (Sandbox Code Playgroud)

阅读材料