字符集是在安装SQL Server时选择的,不能更改。使用 Unicode数据类型,列可存储由Unicode标准定义的任何字符,包含由不同字符集定义的所有字符。Unicode数据类型需要相当于非Unicode数据类型两倍的存储空间。 Unicode数据使用SQL Server中的nchar、varchar和 ntext数据类型进行存储。对于存储来源于多种字符集的字符的列,可采用这些数据类型。当列中各项所包含的Unicode字符数不同时(至多为4000),使用nvarchar类型。当列中各项为同一固定长度时(至多为4000个Unicode字符),使用nchar类型。当列中任意项超过4000个Unicode字符时,使用ntext 类型。 nvarchar(n): 包含n个字符的可变长度Unicode字符数据。n的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 varchar[(n)]: 长度为n个字节的可变长度且非Unicode的字符数据。n必须是一个介于1和8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是n个字节。所输入的数据字符长度可以为零 nvarchar和varchar的区别是存储方式不同 varchar是按字节存储的.而带"n"的nvarchar是按字符存储的 比如说varchar(40),能存储40个字节长度的字符,存储中文字符的时候,因为中文字符1个字符就等于2个字节.所以varchar(40)只能存储20个中文字符. nvarchar(40),就可以存储40个中文字符,也就是说可以存储80个字节长度的字符.nvarchar要相对于存储的字符类型.比如有些字符是占3个字节的. 同样的,char和nchar也一样道理 char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。 varchar是变长型,它的存储空间会跟你输入的实际字符数而改变,但最大长度不能超过你指定的长度。 nvarchar是unicode的变长型,它和char的区别很明显了,它和varchar的区别主要是存储空间大,相同长度下能容内更多的字符。