加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-01-12 22:31:03 所属栏目:MsSql教程 来源:网络整理
导读:我见过 this,所以我知道如何使用动态生成的字段集创建数据透视表.我现在的问题是我想把结果放到临时表中. 我知道为了从EXEC语句中将结果集放入临时表,您需要预定义临时表.在动态生成的数据透视表的情况下,无法事先知道字段. 我能想到获得此类功能的唯一方法是

我见过 this,所以我知道如何使用动态生成的字段集创建数据透视表.我现在的问题是我想把结果放到临时表中.

我知道为了从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以接受params到openquery

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读