Sql 动态地将动态查询结果集插入临时表

Sql 动态地将动态查询结果集插入临时表,sql,sql-server,Sql,Sql Server,我需要插入动态查询的结果集 EXEC sp_executesql @Query 进入临时桌。这个临时表应该动态创建,而不是已经创建,因为动态查询中的列不是常量。请引导我 编辑:为什么我需要插入临时表 我试图显示帐户的使用信息(订购的产品)。他可能不会订购所有产品,因此列(产品)并不总是恒定的。我想将这些列与其他一些列一起放入临时表中,比如他订购的日期,并在临时表上执行一些操作,比如where conditions或groupby,您可以使用#table而不是预定义的@tab。 这将在移动中创

我需要插入动态查询的结果集

EXEC sp_executesql  @Query
进入临时桌。这个临时表应该动态创建,而不是已经创建,因为动态查询中的列不是常量。请引导我

编辑:为什么我需要插入临时表

我试图显示帐户的使用信息(订购的产品)。他可能不会订购所有产品,因此列(产品)并不总是恒定的。我想将这些列与其他一些列一起放入临时表中,比如他订购的日期,并在临时表上执行一些操作,比如where conditions或groupby,您可以使用
#table
而不是预定义的
@tab
。 这将在移动中创建表和表结构

为此,首先在服务器上启用临时分布式查询

    sp_configure 'Show Advanced Options', 1
    GO
    RECONFIGURE
    GO
    sp_configure 'Ad Hoc Distributed Queries', 1
    GO
    RECONFIGURE
    GO
之后,您可以根据存储过程返回的结果中的列创建#表

   SELECT * INTO #table FROM 
   OPENROWSET('SQLNCLI', 'Server=localhost;Trusted_Connection=yes;',
   'EXEC dbo.procedurname') 

只有在返回结果之前,才可以更改存储过程以在过程中填充所需的结果。为此,您可以使用全局临时表,即:<代码>表格


注意在这种情况下,请确保将此
##表
放在末尾。或者在创建它之前检查它是否存在。

至少不知道表中的列数对于软件之类的东西来说是不太好用的。你为什么有这个要求?据我所知,你不能(我也试过了,不久前我也有同样的要求)。但是,您可以使用动态sql首先创建表,然后用您拥有的动态查询填充它。
@Query
的源代码是什么,是您自己编写的,还是从某处选择的?此链接中给出了类似的解决方案,然后您需要如何处理#temp表中的数据?这项工作也可以在动态SQL中执行吗?否则,您将面临一个真正的鸡和蛋的问题。您不应该将产品作为列,而是作为行。听起来像是设计问题。