Sql server 2012 nvarchar(最大)是否只允许4000个字符?
在下面的查询中,nvarchar(max)似乎被截断为4000个字符。 这似乎与答案相反,答案是“因为NVARCHAR每个字符使用2个字节,大约是10亿个字符。”Sql server 2012 nvarchar(最大)是否只允许4000个字符?,sql-server-2012,nvarchar,Sql Server 2012,Nvarchar,在下面的查询中,nvarchar(max)似乎被截断为4000个字符。 这似乎与答案相反,答案是“因为NVARCHAR每个字符使用2个字节,大约是10亿个字符。” DECLARE@test-NVARCHAR(最大值) 声明@i INT 设置@i=0 设置@test=cast('x'为nvarchar(最大)) 虽然(@i对不起,刚刚发现这是Sql server management studio中消息屏幕的一个限制。下面的代码显示了正确的结果 DECLARE @test NVARCHAR(MAX
DECLARE@test-NVARCHAR(最大值)
声明@i INT
设置@i=0
设置@test=cast('x'为nvarchar(最大))
虽然(@i对不起,刚刚发现这是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
DECLARE@test-NVARCHAR(最大值)
声明@i INT
设置@i=0
设置@test=cast('x'为nvarchar(最大))
而(@iWow,是的,这太奇怪了!使用print
和nvarchar(max)只会打印前4000个字符!很好的发现。嘿,微软:你怎么解决你的问题呢?:)
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