快速将动态查询结果集插入临时表

时间:2019-02-25 13:22:27

标签: sql sql-server

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

EXEC sp_executesql  @Query

进入临时表。该临时表应该动态创建,而不是已经创建,因为动态查询中的列不是恒定的。请引导我

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

我正在尝试显示帐户的使用信息(订购的产品)。他可能未订购所有产品,因此列(产品)并不总是恒定的。我想将这些列与其他一些列(如他订购的日期)一起放入临时表,并在临时表上执行一些操作,例如条件或groupby

1 个答案:

答案 0 :(得分:0)

您可以使用#table而不是预定义的@tab。 这将随时随地创建您的表和表结构。

为此,首先在服务器上启用即席分布式查询。

    sp_configure 'Show Advanced Options', 1
    GO
    RECONFIGURE
    GO
    sp_configure 'Ad Hoc Distributed Queries', 1
    GO
    RECONFIGURE
    GO

之后,您可以根据存储过程返回的结果中的列创建#table。

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

OR

您只能在返回结果之前更改存储过程,以在过程中填写所需的结果。为此,您可以使用全局临时表,即; ##table

注意,在这种情况下,请确保您将此##table放在最后。或在创建前检查其存在。