我已经看过了,所以我知道如何用动态生成的字段集创建数据透视表。我现在的问题是我想将结果放入临时表中。
我知道,为了将结果集从 EXEC 语句放入临时表中,您需要预先定义临时表。对于动态生成的数据透视表,无法事先知道字段。
我想得到这种功能的唯一方法是使用动态SQL创建一个永久表。有没有更好的办法?
您可以这样做:
-- add 'loopback' linkedserver if exists (select * from master..sysservers where srvname = 'loopback') exec sp_dropserver 'loopback' go exec sp_addlinkedserver @server = N'loopback', @srvproduct = N'', @provider = N'SQLOLEDB', @datasrc = @@servername go declare @myDynamicSQL varchar(max) select @myDynamicSQL = 'exec sp_who' exec(' select * into #t from openquery(loopback, ''' + @myDynamicSQL + '''); select * from #t ')
编辑:添加动态sql接受参数以openquery