文档不是非常明确:https://msdn.microsoft.com/en-us/library/ms186939.aspx
如果我尝试在定义为nvarchar(10)的列中存储20个字符长度的字符串会怎样?字段可以是10的最大长度,还是预期的长度?如果我可以超过字符串中的n个字符,那么这样做的性能影响是什么?
答案 0 :(得分:2)
您可以在列为nvarchar(n)
的列或变量中存储的最大字符数为n
。如果您尝试存储更多字符串将被截断,或者在插入表格的情况下,将禁止插入,并显示有关可能的截断的警告:
字符串或二进制数据将被截断。声明一直如此 终止。
declare @n nvarchar(10)
set @n = N'more than ten chars'
select @n
结果:
----------
more than
(1 row(s) affected)
答案 1 :(得分:0)
根据我的理解,nvarchar只会将提供的字符存储到定义的数量。 Nchar实际上会用空格填充未使用的字符。