使用Dynamic Pivot时,String的容量超过了

时间:2012-09-26 07:53:14

标签: sql-server database pivot

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

declare @columns nvarchar(max)

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

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

1 个答案:

答案 0 :(得分:1)

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

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