在提交数据库之前裁剪NVARCHAR(MAX) - 长度是多少?

时间:2012-07-03 14:57:11

标签: sql sql-server-2012 nvarchar

我有一个类型为

的SQL行
summary NVARCHAR(4000) NULL

在我向表中添加任何数据之前,我在代码中检查它并修复它,如果用户使用此代码为数据库输入了太长的字符串

if (instanceToCrop.Description != null && instanceToCrop.Description.Length > 4000) instanceToCrop.Description = instanceToCrop.Description.Substring(0, 4000);

如果我这样改变我的表

ALTER TABLE Timeline
ALTER COLUMN summary NVARCHAR(MAX)

我应该用什么常量代替4000来保持提交的字符串低于SQL服务器拒绝的长度?

1 个答案:

答案 0 :(得分:1)

您可以在NVARCHAR(MAX)中存储的最大字符数为1,073,741,823或非常接近。如果您的用户可以在您的文本框中输入该数量的文本,那么可能会出现一些不理想的事情......他们是否粘贴了圣经或所有指环王电影的成绩单?

我认为你可以设定一个更实际的限制,但我们不能真正告诉你应该是什么...... 50,000个字符? 100,000个字符?出于网络/数据包原因,小于64KB的东西?不知道,这似乎是一个商业决策,而不是技术决策。