你的字符用nvarchar存储如:create database mmm
go
use mmm
go
ALTER DATABASE mmm COLLATE Latin1_General_Ci_Ai
go
create table test (a nvarchar(100),b varchar(100))
go
insert test values(N'大力','大力') --后面是乱码
go
select * from test where a=N'大力'select * from test where a='大力'--这个是错的。

解决方案 »

  1.   

    将字符的存储类型改为unicode类型.如nvarchar/ntext
      

  2.   

    大力兄:
    我改了字段类型(由char改为nvarchar)后已有的历史数据好象还是乱码,新增的记录是汉字。历史数据有办法解决吗?
      

  3.   

    1:用nchar,nvarchar,ntext
    2:
    在字符型字段后面加上COLLATE Chinese_PRC_CI_AS 看看
     eg: Select a COLLATE Chinese_PRC_CI_AS ,b COLLATE Chinese_PRC_CI_AS  from tb13:修改字段的排序规则。
    ALTER TABLE tb
     ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS 
    --不区分大小写
    ALTER TABLE tb 
     ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS 
    --区分大小写