- 类型不同
varchar是非Unicode可变长度类型,nvarchar是Unicode编码可变长度类型
- 长度不同
它们两者的最大长度不一样,nvarchar的最大值是4000,varchar最大值是8000
- 存储不同
varchar能存储的字节数就是它的长度,nvarchar能存储的字节数是它的长度乘2
- 总结
总的来说,我是比较推崇使用nvarchar
有人说,varchar比nvarchar更省空间,应该更多的用varchar。但是我不是很赞同这个观点,首先,现在空间相对来说已经不是那么缺少了,没有必要太纠结于空间这个了,还有一点就是现在的操作系统基本上内部解析基本上都是用Unicode编码的,使用了nvarchar你可以避免每次从数据库读取或写入时候,进行编码转换,转换需要时间,并且很容易出错。如果出错,恢复回来可没那么简单,并且nvarchar是支持多种语言的。所以我大部分时间做数据库设计的时候都是用nvarchar的。