我有一个查询,它检索大约 184K 行并存储到临时表中。现在,在第二个查询中,我首先从临时表中检索所有数据并将其旋转。旋转时,我遇到了错误。
消息 1105,级别 17,状态 2,第 56 行无法为数据库“tempdb”中的对象“dbo.WORKFILE GROUP 大型记录溢出存储:140761897762816”分配空间,因为“PRIMARY”文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。
SQL查询如下:
SELECT *
FROM
(
SELECT Id,
Name,
ROW_NUMBER() OVER (PARTITION BY Id,
Name
ORDER BY
(
SELECT NULL
)
) AS [Row Number],
[Value]
FROM #Data --184K Rows
) AS S
PIVOT
(
MAX([Value])
FOR Name IN ([A],[B],[C],[D],[E],[F],[G],[H],[I],[J],[K],[L],[M],[N],[O],[P],[Q],[R]
)
) AS PVT;
我们可以在不增加 tempDB 大小的情况下解决这个问题吗?