>>也就是不认识如下的select语句:
>>select Age from UserTable where UserName='大哥'
不認識是什麼意思?? 是出錯嗎? 還是說沒有用到index?? 如果是出錯,那錯誤信息是什麼?

解决方案 »

  1.   

    你先試一下:
    Select * from UserTable where UserName Collate  Chinese_PRC_CS_AS ='大哥'
    看行不行?
      

  2.   

    Sorry,寫倒了。
    應該是
    Select * from UserTable where UserName ='大哥' Collate  Chinese_PRC_CS_AS
      

  3.   

    说语法错误,incorrect syntax near Collate
      

  4.   

    不是吧,你的是不是SQL Server2000啊?
    我電腦上的能RUN的SQL:
    Select * from tblstock where PartRule ='插件' Collate   Chinese_PRC_CS_AS
      

  5.   

    我是SQlserver 7.0, 不是说得很清楚吗 ?大哥!
      

  6.   

    查过了,7。0不认识这个collate
    那位大虾还有别的高见????
    急死我了~~~~
      

  7.   

    查过了,7。0不认识这个collate
    那位大虾还有别的高见????
    急死我了~~~~
      

  8.   

    会不会是代码页的问题?你的UserName是char或varchar吧(非unicode)?character set改为936如何?
      

  9.   

    用=注意一下前后有没有空格呀,用like ‘%大哥%’试一下就知道了
      

  10.   

    UserName是nvarchar
    改为936当然对了,但是在iso 8859-1的情况下难道就不能支持中文查询了吗?这不对呀。
    to: kanghl
    不是空格的问题,是编码的问题
      

  11.   

    select Age from UserTable where rtrim(ltrim(UserName))='大哥'
      

  12.   

    没错,但是我认为应该可以解决,就像java里面的getbyte()
      

  13.   

    改成Varchar不能输中文,没道理啊?
      

  14.   

    你的SQL是中文的吗?如果是,我不知道。如果不是,可能就是这个问题。
    执行语句是用ASCII码传给数据库,但英文数据库使用的是自己的编码方式。
      

  15.   

    最後一招,行則行,不行就沒法了。
    Select * from UserTable where Cast(UserName as varbinary) =Cast(N'大哥' as varbinary)
      

  16.   

    1.使用Unicode字段类型保存中文。
    2。使用N前缀查询中文数据:
    select * from tablename where fieldsname=N'中国'
                                            ~~~
      

  17.   

    如果你使用uvarchar来存储你的数据,那么存储的数据跟字符集就没有关系了。
    不管你的字符集选什么,存在数据库中的unicode数据的值都是一样的。
    如果你select不出结果,主要是跟你查询分析器发给服务器的语句有关。如果你的操作系统不win2000,而且你的数据库也不是sqlserver2000,不自动支持unicode数据的话,你发给服务器的查询条件中的查询字符就会以数据库中的字符集为准,从而使查询条件和你需要的数据不匹配。
    解决办法就如 hydnoahark(诺亚方舟)说的,在查询条件的字符串前加上N.
      

  18.   

    谢谢!!!!
    我担心了两天,今天一来发现解决了。
    很感谢所有参与讨论的人。
    马上给分,有多有少,大家笑纳。
    再次谢谢大家。
    不过还是有点问题。
    to bluepower2008, 
        uvarchar是不是写错了?是不是如果类型是nvarchar,存的就是unicode?
    to hydnoahark
       1.使用Unicode字段类型保存中文。
        方法是不是就是用nvarchar??
      

  19.   

    sorry,躺着打字,字母都倒了。应该是nvarchar,使用unicode就是字段定义为nchar,nvarchar或ntext。
      

  20.   

    安装SqlServer时,字符集选简体中文就可以了。