Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2012 nvarchar(最大)是否只允许4000个字符?_Sql Server 2012_Nvarchar - Fatal编程技术网

Sql server 2012 nvarchar(最大)是否只允许4000个字符?

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

在下面的查询中,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 @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