我正在处理一些将导入长字符串的SQL Server 2012表。根据我的研究,我应该使用nvarchar()
。但是,如果您使用nvarchar(max)
,可能会有很多关于可能存在严重性能问题的讨论,例如:在Are there any disadvantages to always using nvarchar(MAX)?。我还看到nvarchar(max)
类型的实际最大字符数为4000.
这听起来像是明确设置长度,即使该长度等于或接近最大值(可能是3999?)也可能避免最严重的问题。但那对我来说没有意义;不应该明确设置一个值,结果与隐式设置相同的值相同吗?
那是哪种情况? nvarchar(4000)
是否与nvarchar(max)
实际上相同,或两者之间是否存在真正的差异?
编辑:评论中引用的问题回答了指定长度与设置为最大值的一般问题。但是如果设置为4000会发生什么? max最多允许超过4000个字符吗?如果没有,为什么不总是设置为4000而不是最大?