nvarchar(max)只允许4000个字符吗?

时间:2014-03-19 20:51:50

标签: sql-server-2012 nvarchar

在下面的查询中,nvarchar(max)似乎截断为4000个字符。 这似乎与答案here相反,后者表示"由于NVARCHAR每个字符使用2个字节,因此约为。 10亿个字符。"

DECLARE @test NVARCHAR(MAX)
DECLARE @i INT
SET @i=0
set @test=cast('x' as nvarchar(max))

while(@i<6000)
begin
set @test= (@test+ cast('x' as nvarchar(max)))
set @i=@i+1

end

print @TEST--has only 4000 characters

1 个答案:

答案 0 :(得分:1)

抱歉,刚发现这是Sql server management studio中消息界面的限制。下面的代码显示了正确的结果

DECLARE @test NVARCHAR(MAX)
DECLARE @i INT
SET @i=0
set @test=cast('x' as nvarchar(max))

while(@i<6000)
begin
set @test= (@test+ cast('x' as nvarchar(max)))
set @i=@i+1

end

print len(@TEST)--6001