将执行动态查询的结果插入表中

Mud*_*san 7 sql t-sql sql-server

我有一个动态查询@strQuery,在执行时给出一个包含大量列的结果.我想将此动态查询的结果插入临时表.我这样做是因为我想对临时表执行一些过滤并获得所需的结果.

在先前的线程HERE 中询问了类似的问题,其中首先创建临时表,然后使用插入数据INSERT INTO.

我想避免这一步,因为列列表很长,而且我不知道字段的数据类型.

select * into #tmh from
exec(@strQuery)
Run Code Online (Sandbox Code Playgroud)

错误信息

关键字'exec'附近的语法不正确.

这该怎么做 ?有可能以这种方式完成吗?如果没有,请指定一些其他替代方法,以便将执行动态查询的结果存储到表中.谢谢.

Raj*_*Raj 12

我以前遇到过这种情况,这就是我所做的:

DECLARE @strQuery nVarchar(100)

SET @strQuery='SELECT * into [tempdb].[dbo].[temptable] FROM YourTable'

EXECUTE sp_executesql @strQuery

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

DROP TABLE [tempdb].[dbo].[temptable]
Run Code Online (Sandbox Code Playgroud)

它工作正常.不要问我为什么是FQ表名而不是#temptable.我不知道.这是行不通的.我能让它工作的唯一方法是使用[tempdb].[dbo].[temptable]