你的字符用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='大力'--这个是错的。
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='大力'--这个是错的。
我改了字段类型(由char改为nvarchar)后已有的历史数据好象还是乱码,新增的记录是汉字。历史数据有办法解决吗?
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
--区分大小写