none
请教一下专家,在数据库sql server2000中用varchar还是用nvarchar好 RRS feed

  • 问题

  • 我需要对数据库中的字符串进行加解密,数据库字段是用varchar还是用nvarchar好,我以前用的都是varchar,字段主要是存储中文、数字,还有标点符号等等,这两种各有什么优缺点,一般是用什么类型,请专家指点一下,多谢
    dyx9010
    2010年7月20日 14:02

答案

  • 区别是nvarchar是用来存放Unicode字符的,varchar用来存放非Unicode字符。如果你用来存放中文的话,nvarchar好点。
    Shuhai Shen - http://leonax.net
    • 已标记为答案 dyx9010 2010年7月22日 12:27
    2010年7月20日 14:19
  • 你好

    如果你用來储中文的話

    用NVARCHAR/NCHAR 會好一點 因為還樣便不會有字的問題

    NVARCHAR 用的位元會比VARCHAR 大
    好像 1個NVARCHAR 的字 等如 2個VARCHAR 的字的容量大小

    Please forgive me if my concept is wrong

     


    Chi
    • 已标记为答案 dyx9010 2010年7月22日 12:27
    2010年7月20日 20:35
  • 不是好不好的问题,是能不能的问题。

    SQL Server 2000 数据库引入了Collation 的概念, Collation 不只是影响存储的字节而且还影响排序、时间日期格式等,而且它的作用于整个的数据库。当你使用Latin 有关的 Collation 的时候,你只能在字段级别上使用 nvarchar 来存储中文;但是当你使用Chinese 有关的 Collation 的时候,你可以使用 varchar 来存储中文。

    当一个表里既有unicode 和 non-unicode 字段的时候,有时候对性能有影响。所以当你的的数据主要是存储中文的时候,建议你使用Chinese 有关的 Collation, 而字段仍然使用Varchar。  

    2010年7月21日 0:32
    版主
    • 已标记为答案 dyx9010 2010年7月22日 12:34
    2010年7月21日 5:45

全部回复

  • 区别是nvarchar是用来存放Unicode字符的,varchar用来存放非Unicode字符。如果你用来存放中文的话,nvarchar好点。
    Shuhai Shen - http://leonax.net
    • 已标记为答案 dyx9010 2010年7月22日 12:27
    2010年7月20日 14:19
  • 字段主要是存储中文、数字,还有标点符号

    ==>

    用nvarchar吧 存放Unicode字符 

     

    2010年7月20日 16:10
  • 你好

    如果你用來储中文的話

    用NVARCHAR/NCHAR 會好一點 因為還樣便不會有字的問題

    NVARCHAR 用的位元會比VARCHAR 大
    好像 1個NVARCHAR 的字 等如 2個VARCHAR 的字的容量大小

    Please forgive me if my concept is wrong

     


    Chi
    • 已标记为答案 dyx9010 2010年7月22日 12:27
    2010年7月20日 20:35
  • 不是好不好的问题,是能不能的问题。

    SQL Server 2000 数据库引入了Collation 的概念, Collation 不只是影响存储的字节而且还影响排序、时间日期格式等,而且它的作用于整个的数据库。当你使用Latin 有关的 Collation 的时候,你只能在字段级别上使用 nvarchar 来存储中文;但是当你使用Chinese 有关的 Collation 的时候,你可以使用 varchar 来存储中文。

    当一个表里既有unicode 和 non-unicode 字段的时候,有时候对性能有影响。所以当你的的数据主要是存储中文的时候,建议你使用Chinese 有关的 Collation, 而字段仍然使用Varchar。  

    2010年7月21日 0:32
    版主
    • 已标记为答案 dyx9010 2010年7月22日 12:34
    2010年7月21日 5:45
  • PatrickFeng讲的我没有看明白,如果主要是中文的话,用varchar和nvarchar哪一个行
    dyx9010
    2010年7月22日 12:32
  • 每个数据库在建立的时候都要指定一个 Collation, 建立好的数据库你可以在属性页里看到。Collation 的选择决定了你的数据库数据的存储格式,还有大小写敏感等,其中些是 Chinese 有关的 Collation, 当选择了这些 Collation 后,你的数据库中所有的表都可以自动支持 Unicode 而不需要再选择nVarchar了。但是假如你选择了 Latin 有关的 Collation, 这时候 Varchar 字段就不能存储中文了,所以你只能选择nVarchar 字段类型。

     

    2010年7月22日 13:02
    版主