我有一个动态查询@strQuery
执行时会产生包含很多列的结果。
我想将此动态查询的结果插入到临时表中。
我这样做是因为我想对临时表执行一些过滤并获得所需的结果。
之前的帖子也问过类似的问题HERE https://stackoverflow.com/questions/662049/dynamic-sql-results-into-temp-table-in-sql-stored-procedure其中首先创建临时表,然后使用以下命令插入数据INSERT INTO
.
我想避免这一步,因为列的列表很长,而且我也不知道字段的数据类型。
select * into #tmh from
exec(@strQuery)
错误信息
关键字“exec”附近的语法不正确。
这个怎么做 ?这样可以吗?如果不是,请指定其他替代方案来将执行动态查询的结果存储到表中。
谢谢。
我以前遇到过这种情况,这就是我所做的:
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]
效果很好。不要问我为什么使用 FQ 表名称而不是 #temptable。我不知道。这是行不通的。我能让它工作的唯一方法是使用 [tempdb].[dbo].[temptable]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)