我的表中有一个名为 [Body] 的 nvarchar(MAX) 字段。我正在尝试将该字段设置为(相当)长的字符串。我发现如果我的字符串 > 42531 字符,更新语句运行,其他字段被更新,但 [Body] 字段设置为空字符串。如果我从字符串中的任何位置删除 1 个字符,[Body] 字段将包含我设置的文本。我添加/删除的字符或其位置对此也没有任何影响,这不是一个奇怪的字符或转义问题。
DECLARE @p1 nvarchar(MAX)
SET @p1 = 'a string longer
than 42531 chars...
with line breaks etc'
UPDATE [dbo].[MyTable] SET [Body] = @p1, CreatedOn = GETDATE() WHERE Id = 15597
怎么会这样?!很明显,nvarchar(MAX) 最多可以存储 2GB 的数据,但我还没有接近它。