数据库中nvarchar与varchar有什么区别,什么时候用nvarchar,什么时候用varchar?

另外,为什么我的电脑用虚拟机装了SQL SERVER 2005,想输入汉字,使用varchar(20)不行,而nvarchar(20)就可以呢?是系统问题吗?我应该怎么办?答得好的话,我会追加送100分的

nvarchar和varchar的区别是看是否采用unicode来存放数据。
一个unicode是2个字节,你定义nvarchar(20)就可以存放20个汉字。
varchar是单字节,你定义varchar(20)就能存放20个字符,10个汉字。
varchar(20)用来存放汉字也可以,可能是你输入的汉字个数大多了,超过了10个,所以溢出了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-19
虚拟机中出现的问题我就不知道了。
标题的问题还是能回答你的:
varchar是字符串类型,例如 varchar(20),那么就是20长度的字符串。(输入15个,剩下五个用空格补充,长度始终是20)
而nvarchar(20)和上面的基本一样,不同的是nvarchar是可变的。(输入15个,长度就是15.也就是你输入多少,长度就是多少。不超过设定的长度20)
后面在性能方面比前者差一点点。
第2个回答  2011-11-27
建议:存放英文使用varchar,存放中文使用nvarchar。

varchar 使用单字节存放信息。一个中文2字节,一个英文1字节
nvarchar 使用双字节存放信息。一个中文2字节,一个英文2字节

比如 我和dog
varchar:2×2+3=7
nvarchar:5×2=10

输入汉字的时候,varchar(20)可以存放10个汉字。nvarchar(20)可以存放20个汉字。
第3个回答  2019-10-17
楼上都是百度的
nvarchar是Unicode格式来存储字符的,其他的与varchar一样
第4个回答  2011-11-19
nvarchar 是变长的,VARCHAR是定长.