varchar(10)   的10是代表是10个字节,还是代表存放的字符个数为10个以及nvarchar(10) 网上资料说它的每个字符占两个字节,那么说是只能存5个字符
但我输10个字符也可以.
varchar(10)
nvarchar(10)
这两个有点不是很明白,望大家能给我解释下.

解决方案 »

  1.   

    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也一样道理 
      

  2.   

    nvarchar 一般是存放unicode形式,比如英文版的操作系统想显示中文的数据可能就会用nvarchar格式
      

  3.   

    varchar 是字节
    nvarchar 是字符貌似
      

  4.   

    10代表字符数
    declare @c varchar(4),@n nvarchar(4)
    select @c='12313132',@n=N'13131312321'
    select @c,@n,datalength(@c),datalength(@n)