我的数据库是SQLServer2000.我用以下语句去查询:select l.*,c.name as name,d.dic as dic from hzlk_logo as l,CUST as c,hzlk_dic as d where l.BelCus=c.CUS_NO and l.BelSen=d.SubType and l.LogoCode like '%%' and l.LogoName like '%a%' and l.LogoSpc like '%%' order by l.LogoName 结果只查到带有a的记录。表里l.LogoName 这个字段,有包含大写A,也有包含小写a的记录,听别人说sqlserver是不分大小写的,但我查的时候却分了大小写,请问到底哪里出了问题?
0不敏感,1敏感
xeqtr1982(ShaKa) 老师,照您的办法,会出现很多如下提示:
服务器: 消息 5075,级别 16,状态 1,行 1
列 'FN_BOX_TF_POS.OS_ID' 依赖于 数据库排序规则。
服务器: 消息 5075,级别 16,状态 1,行 1
列 'FN_BOX_TF_POS.OS_NO' 依赖于 数据库排序规则。
服务器: 消息 5075,级别 16,状态 1,行 1
--------------------
你安装时指定了数据库的字符区分大小写,
默认情况下是不区分大小写的!你可通过SQL语句重新指定数据库的排序方式!
如:
alter database 库名 collate Chinese_PRC_CI_AS
--这个是不区分大小写,不区分重音的比较
alter database 库名 collate Chinese_PRC_CI_AS
这一句在查询分析器上跑,但还是报
服务器: 消息 5075,级别 16,状态 1,行 1
列 'FN_BOX_TF_POS.OS_ID' 依赖于 数据库排序规则。
服务器: 消息 5075,级别 16,状态 1,行 1
列 'FN_BOX_TF_POS.OS_NO' 依赖于 数据库排序规则。 这样的错误,
sp_datatype_info 12=0
就可将其设为大小写不敏感。
12为varchar类型对应的data_type值。
在查询分析器中运行
sp_datatype_info
可看到各种数据类型对应的data_type值。
但提示:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '=' 附近有语法错误。
实在没有别的办法的话,直接对master库的用户表修改。将1改成0。
master库中spt_datatype_info用户表的CASE_SENSITIVE字段中的值:
0不区分大小写,1区分大小写
用下面语句查询试试:
select l.*,c.name as name,d.dic as dic
from hzlk_logo as l,CUST as c,hzlk_dic as d
where l.BelCus=c.CUS_NO
and l.BelSen=d.SubType
and l.LogoCode like '%%'
and l.LogoName like '%a%' COLLATE Chinese_PRC_CI_AI
and l.LogoSpc like '%%'
order by l.LogoName