日期:2014-05-18  浏览次数:20417 次

关于varchar和nvarchar的区别问题
看过很多解释但是还是没搞明白,并且有越来越晕的感觉,希望这次能清晰的解决这问题!

varchar和nvarchar在实际编程中究竟如何选择用哪个呢?

------解决方案--------------------
varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。

如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar

以上是偶在网上找的资料,有点书面化.

偶自己的理解就是,不管什么地方,最好都用nvarhar.为得是通用,国际化.简少出错.

------解决方案--------------------
多语言时。最好用nvarchar。它符合SQL内的left和len的长度,不管中文或英文。它对任何字符的存储空间,都是以每个字符二个字节算。varchar是对字符的真实存储,在对多语言的操作中有些不便。它的计算方法是中文是以二个字节一个字,但字母是以一个字节存储。(与SQL内的len有些出入)