我需要从动态查询中插入结果集
EXEC sp_executesql @Query
进入临时表。该临时表应该动态创建,而不是已经创建,因为动态查询中的列不是恒定的。请引导我
编辑:为什么我需要插入临时表
我正在尝试显示帐户的使用信息(订购的产品)。他可能未订购所有产品,因此列(产品)并不总是恒定的。我想将这些列与其他一些列(如他订购的日期)一起放入临时表,并在临时表上执行一些操作,例如条件或groupby
答案 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
放在最后。或在创建前检查其存在。