--没测试
insert tablename(ziduan) values(N'您好')Chinese_PRC_CI_AS   表示排序规则SQL SERVER 2000有一些参数,你自己慢没看吧打开联机丛书
菜单栏-->跳转-->URL 输入如下地址,就可以看到很多参数mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_ca-co_5ell.htm

解决方案 »

  1.   

    execute master..xp_enumcodepages 显示服务器当前所有代码页 即可用排序 (用来比较字段,排序等等)汉字不以ASCII存放 而是UNICODE 双字节存放 
      

  2.   

    "汉字不以ASCII存放 而是UNICODE 双字节存放 " sql server2000 在插入时作这样的判断吗?还是说直接默认的就是UNICODE存放所有字符?因为有时并没有在代码中显式N'也好像能插入到英文系统数据库中。想了解一下原理,谢谢!
      

  3.   

    N是声明以UNICODE来插入 有时候直接插也能正常插入 我要做下测试。。
      

  4.   

    我做了测试:
    环境:win2003_en + sqlserver2000_en
    table:
    test
    (
    a varchar(100),
    b varchar(100),
    c varchar(100)
    )insert test(a,b,c) values(N'啊啊',N'啊啊啊',N'啊啊啊啊')
    insert test(a,b,c) values('啊啊','啊啊啊','啊啊啊啊')都可以插入成功。
      

  5.   

    跟数据库的Collation有关系的 如果是Chinese_PRC_CI_AS一类的 是不需要显式声明N的
    但在其他Collation下 比如Latin1_General_CI_AI 不使用N是不可以的insert into t6([Name]) values ('结果')Name       
    ---------- 
    ??insert into t6([Name]) values (N'结果')Name       
    ---------- 
    ??
    结果
      

  6.   

    "汉字不以ASCII存放 而是UNICODE 双字节存放 " sql server2000 在插入时作这样的判断吗?还是说直接默认的就是UNICODE存放所有字符?因为有时并没有在代码中显式N'也好像能插入到英文系统数据库中。想了解一下原理,谢谢!
    -------------------------------------------------------
    因为你的排序规则server collation:Chinese_PRC_CI_AS 
    所以sql就把他当做简体中文了,你把排序规则改过其它的,就不行了
      

  7.   

    1、如果是UNICODE字段当然没问题
    2、如果是CHAR、VARCHAR、TEXT等,就要这样处理:
       (1)在WINDOWS的控制面板-区域选项-语言设置中将中文简体打上勾并且设为默认值
       (2)把排序规则设为Chinese_PRC_CI_AS帮客户写过一个程序,简体中文环境下写的,用了几年后客户要求把数据库搬到英文环境下,简体中文显示为乱码,但没理由让我把程序用 N' 来改写吧,很大工作量呢。如上方式处理后,经测试OK!