char和varchar的话,大家都了解,一个是定长字符串,一个是不定长字符串。而nvarchar则代表了以unicode编码的字符(串)。
在xp的英文版操作系统中,char,varchar都不会有问题。只是存储的效率上稍有差别,而如果出现了中文,那就只有nvarchar能搞定了,否则就是乱码。既然是unicode那就是所有字符都有两个字节组成。在中英文混排的数据里效率比较低,但又必须使用这样的格式:nvarchar。
在中文版操作系统中,即使使用char和varchar都可以存储中文数据。默认的,nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出来,在存储效率上char,varchar是有优势的。但假如数据库里的字符不仅是中文和英文资料,还是俄文,日文这些字符的话,那就非用nvarchar不可了。
2010年8月11日(标记:完)