执行动态创建的SQL Query并将Query结果存储为临时表

时间:2015-06-23 07:22:46

标签: sql sql-server

我正在动态创建SQL查询。在创建它之后,我想执行它并将其存储为临时表。

WITH [VALIDACCOUNTS] AS( EXEC (@sqlQuery))

1 个答案:

答案 0 :(得分:1)

您有两个解决方案:

作为第一个解决方案,您只需使用INSERT EXEC即可。如果您有指定的结果集,这将有效。如果您的过程只返回一个具有固定结果设计的结果集,则可以使用此方法。

只需创建具有匹配列和数据类型的临时表即可。之后你可以这样称呼:

INSERT INTO #yourTemporaryTable
EXEC(@sql)

第二个解决方案是使用OPENROWSET,这可能会产生一些副作用。 您可以阅读更多相关信息here

INSERT INTO #yourTemptable
SELECT * 
FROM OPENROWSET('SQLNCLI', 'DRIVER={SQL Server};',
                'EXEC (''+@sql+''))'