英文SQL SERVER 2000 SP4
WINDOWS SERVER 2000 英文
TABLE 表中有一DES字段VARCHAR
存有英文加中文内容 ,
现要根据中文关键字模糊查询相关记录,
通常英文没问题
SELECT * FROM TABLE1 WHERE DES LIKE '%中文%‘
但中文不行,无结果或不是正确结果,
找过N年前的贴子,加N,也不行,SELECT * FROM TABLE1 WHERE DES LIKE N'%中文%‘现试过修改数据库字符集为Chinese_PRC_CI_AS,无果
再依次试改字段类型为NVARCHAR
也无果
其它方法:
SELECT DES FROM UN_ITEM1
with(index=IX_UN_ITEM1)
WHERE PATINDEX(DES, N'光油')>0
SELECT * FROM TABLE1 WHERE DES LIKE N'%中文%‘
collate chinese_prc_bin
--collate Chinese_PRC_CI_ASSELECT * FROM TABLE1 WHERE DES LIKE '%中文%‘
collate chinese_prc_bin
--collate Chinese_PRC_CI_AS都无果,
。。郁焖加痛苦中。恳请哪位大佛化解,谢谢!
SQL LIKE 模糊查询中文
WINDOWS SERVER 2000 英文
TABLE 表中有一DES字段VARCHAR
存有英文加中文内容 ,
现要根据中文关键字模糊查询相关记录,
通常英文没问题
SELECT * FROM TABLE1 WHERE DES LIKE '%中文%‘
但中文不行,无结果或不是正确结果,
找过N年前的贴子,加N,也不行,SELECT * FROM TABLE1 WHERE DES LIKE N'%中文%‘现试过修改数据库字符集为Chinese_PRC_CI_AS,无果
再依次试改字段类型为NVARCHAR
也无果
其它方法:
SELECT DES FROM UN_ITEM1
with(index=IX_UN_ITEM1)
WHERE PATINDEX(DES, N'光油')>0
SELECT * FROM TABLE1 WHERE DES LIKE N'%中文%‘
collate chinese_prc_bin
--collate Chinese_PRC_CI_ASSELECT * FROM TABLE1 WHERE DES LIKE '%中文%‘
collate chinese_prc_bin
--collate Chinese_PRC_CI_AS都无果,
。。郁焖加痛苦中。恳请哪位大佛化解,谢谢!
SQL LIKE 模糊查询中文
新建对DES的索引,也查不出
有些能显示中文,有些显示是??
在应用程序中能部分显示中文,但在英文SQL QUERY 中还是乱码
新建对DES的索引,也查不出你在管理工具中,选择这个des列,右键“属性”,看看这个列的 排序规则
新建对DES的索引,也查不出你在管理工具中,选择这个des列,右键“属性”,看看这个列的 排序规则在该表设计中显示 collation 是Latin1_General_BIN
新建对DES的索引,也查不出你在管理工具中,选择这个des列,右键“属性”,看看这个列的 排序规则在该表设计中显示 collation 是Latin1_General_BIN改成 :Chinese_PRC_CI_AS 试试
新建对DES的索引,也查不出你在管理工具中,选择这个des列,右键“属性”,看看这个列的 排序规则在该表设计中显示 collation 是Latin1_General_BIN改成 :Chinese_PRC_CI_AS 试试
SQL collation 中没有,但在WINDOWS collation中有Chinese_PRC_STROKE
使用RESTORE DEFAUT 是CHINESE_PRC 后
在属性中显示database default, 该 DATABASE 已改为Chinese_PRC_CI_AS,
但该表有太多索引值,无法保存更改,删除一个索引又来一个,都要删除吗?
'UN_ITEM1' table
- Unable to create index 'Z_24304747'.
ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX 终止,因为发现了索引 ID 2 的重复键。最重要的主键为 '004-·à???á&?'。
[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。
新建对DES的索引,也查不出你在管理工具中,选择这个des列,右键“属性”,看看这个列的 排序规则在该表设计中显示 collation 是Latin1_General_BIN改成 :Chinese_PRC_CI_AS 试试
SQL collation 中没有,但在WINDOWS collation中有Chinese_PRC_STROKE
使用RESTORE DEFAUT 是CHINESE_PRC 后
在属性中显示database default, 该 DATABASE 已改为Chinese_PRC_CI_AS,
但该表有太多索引值,无法保存更改,删除一个索引又来一个,都要删除吗?
'UN_ITEM1' table
- Unable to create index 'Z_24304747'.
ODBC error: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX 终止,因为发现了索引 ID 2 的重复键。最重要的主键为 '004-·à???á&?'。
[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。
错误提示中最重要的主键为 '004-·à???á&?'。,表中数据引起键值重复了,
试试这样呢:SELECT * FROM TABLE1
where DES collate Chinese_PRC_CI_AS like N'%中文%' collate Chinese_PRC_CI_AS
试试这样呢:SELECT * FROM TABLE1
where DES collate Chinese_PRC_CI_AS like N'%中文%' collate Chinese_PRC_CI_AS
无果
试试这样呢:SELECT * FROM TABLE1
where DES collate Chinese_PRC_CI_AS like N'%中文%' collate Chinese_PRC_CI_AS
无果你能不能这样,再建个表xxx,只用一个字段,des nvarchar类型,然后:insert into xxx
select des
from 原表你看看,把数据导入到新的表xxx后,能查询吗
试试这样呢:SELECT * FROM TABLE1
where DES collate Chinese_PRC_CI_AS like N'%中文%' collate Chinese_PRC_CI_AS
无果你能不能这样,再建个表xxx,只用一个字段,des nvarchar类型,然后:insert into xxx
select des
from 原表你看看,把数据导入到新的表xxx后,能查询吗
查询不到,而且打开表中文只能是乱码
按这种方式建的新表导入数据后,用DELPHI 建一个连接查询程序' SELECT DES FROM ITEM' 结果,中文也都是乱码
试试这样呢:SELECT * FROM TABLE1
where DES collate Chinese_PRC_CI_AS like N'%中文%' collate Chinese_PRC_CI_AS
无果你能不能这样,再建个表xxx,只用一个字段,des nvarchar类型,然后:insert into xxx
select des
from 原表你看看,把数据导入到新的表xxx后,能查询吗
查询不到,而且打开表中文只能是乱码
按这种方式建的新表导入数据后,用DELPHI 建一个连接查询程序' SELECT DES FROM ITEM' 结果,中文也都是乱码
但是用这个DELPHI程序新录入的中文,在SQLQUERY 和该程序都可以查询得到
以前存储的中文数据无法挽救了吗?似乎很复杂了
的确这是一个不得已的办法,还有没其它更好的办法呢?
的确这是一个不得已的办法,还有没其它更好的办法呢?
呵呵,暂时没想到什么好的办法。
/*如果以nvarchar,或者加N,都无果,你基本无指望了,因为该格式,以2个字节可以表示任何字符。此方法都不行,你就不用试图从排序规则方向解决了。
完
*/
建表时存中文的字段就要用 nvarchar 类型啊,它可以兼容所有语言,其实是 unicode 类型。
建表时存中文的字段就要用 nvarchar 类型啊,它可以兼容所有语言,其实是 unicode 类型。
说的不错,可这是已用了多年而且还在用着的老系统库,数据量已达上十万条,能不改数据库尽量不改