微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将动态生成的数据透视表转换为临时表

如何解决将动态生成的数据透视表转换为临时表

您可以这样做:

-- 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

解决方法

我已经看过了,所以我知道如何用动态生成的字段集创建数据透视表。我现在的问题是我想将结果放入临时表中。

我知道,为了将结果集从 EXEC 语句放入临时表中,您需要预先定义临时表。对于动态生成的数据透视表,无法事先知道字段。

我想得到这种功能的唯一方法是使用动态SQL创建一个永久表。有没有更好的办法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。