0

我在一些网站上走了一圈,发现解决 Dynamic Pivot 的(唯一)方法是将查询存储为字符串,然后执行该字符串查询。但是,就我而言,我似乎无法应用此解决方案,因为列数超过了一个字符串的容量。

declare @columns nvarchar(max)

select @columns = COALESCE(@columns + ', ','') + QUOTENAME(name)
from table1

虽然我声明了@columns 的最大容量,但它仍然没有足够的空间并导致错误。有什么办法可以解决这种情况,或者如何在不将查询存储为字符串的情况下构建动态数据透视?

4

1 回答 1

1

如果您的列名仅包含英文字母,请尝试Varchar(MAX)而不是 Nvarchar(max)

Varchar(max) 最多可以容纳 2B 的数据,而 Nvarchar(max) 只能容纳 4k 个字符

于 2012-09-26T07:58:52.207 回答