【发布时间】:2015-07-08 00:41:48
【问题描述】:
谁能解释一下为什么在 SQL Server 2008 上会发生这种情况:
declare @sql Nvarchar(max);
set @sql =N'';
select @sql = @sql +replicate('a',4000) + replicate('b', 6000);
select len(@sql)
回报:8000
多个网站建议,只要第一个变量的类型为 NVARCHAR(MAX),就不应该发生截断,但它仍然会发生。
【问题讨论】:
-
从谷歌搜索你会得到“Varchar(Max) 字段在 8000 个字符 SQL Server 2008 后截断数据。我有一个字段来存储一些数据,该字段被声明为 varchar(Max) 。据我了解,这应该存储 2^31 - 1 个字符,但是当我输入一些超过 8000 个字符的内容时,它会切断其余部分”
标签: sql-server tsql sqldatatypes nvarchar truncation