nvarchar(n)究竟是什么意思

时间:2015-02-06 17:21:54

标签: sql-server nvarchar

文档不是非常明确:https://msdn.microsoft.com/en-us/library/ms186939.aspx

如果我尝试在定义为nvarchar(10)的列中存储20个字符长度的字符串会怎样?字段可以是10的最大长度,还是预期的长度?如果我可以超过字符串中的n个字符,那么这样做的性能影响是什么?

2 个答案:

答案 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实际上会用空格填充未使用的字符。