CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

为什么我的sqlserver区分大小写?(急...)

楼主cjp2006(飞行棋)2006-03-09 14:52:49 在 MS-SQL Server / 基础类 提问

我的数据库是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是不分大小写的,但我查的时候却分了大小写,请问到底哪里出了问题? 问题点数:50、回复次数:29Top

1 楼Jane_64()回复于 2006-03-09 15:03:33 得分 0

用sp_datatype_info进行对数据敏感的设置,  
  0不敏感,1敏感Top

2 楼xeqtr1982(Visual C# .NET)回复于 2006-03-09 15:05:10 得分 0

alter   database   库名   collate   Chinese_PRC_CS_ASTop

3 楼xeqtr1982(Visual C# .NET)回复于 2006-03-09 15:08:37 得分 0

看错问题了。呵呵Top

4 楼cjp2006(飞行棋)回复于 2006-03-09 15:10:14 得分 0

Jane_640老师,能讲详细些吗?  
   
   
  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  
  Top

5 楼lsqkeke(可可)回复于 2006-03-09 15:13:25 得分 0

查的时候却分了大小写,请问到底哪里出了问题?  
  --------------------  
  你安装时指定了数据库的字符区分大小写,  
  默认情况下是不区分大小写的!  
   
  你可通过SQL语句重新指定数据库的排序方式!  
  如:  
  alter   database   库名   collate   Chinese_PRC_CI_AS      
  --这个是不区分大小写,不区分重音的比较  
  Top

6 楼xeqtr1982(Visual C# .NET)回复于 2006-03-09 15:13:44 得分 0

刚才没看清问题,不好意思,我写的那条语句是让SQL区分大小写的。Top

7 楼cjp2006(飞行棋)回复于 2006-03-09 15:23:16 得分 0

我希望查询时不区分大小写,但是,在安装、新建数据库时,都是默认的情况下,现在查询区分了大小写,所以,我想知道怎么让数据不区分大小写,试了用  
  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'   依赖于   数据库排序规则。         这样的错误,Top

8 楼Jane_64()回复于 2006-03-09 15:32:18 得分 0

如果你的l.LogoName   字段是varchar类型,在查询分析器中运行  
  sp_datatype_info   12=0  
  就可将其设为大小写不敏感。  
  12为varchar类型对应的data_type值。  
  在查询分析器中运行  
      sp_datatype_info    
  可看到各种数据类型对应的data_type值。Top

9 楼cjp2006(飞行棋)回复于 2006-03-09 15:38:06 得分 0

Jane_640老师,我在查询分析器上跑了这句:sp_datatype_info   12=0  
           
  但提示:  
  服务器:   消息   170,级别   15,状态   1,行   1  
  第   1   行:   '='   附近有语法错误。  
  Top

10 楼cjp2006(飞行棋)回复于 2006-03-09 17:08:05 得分 0

还有没有人指点一下呢?急啊.....Top

11 楼Jane_64()回复于 2006-03-09 17:13:47 得分 0

不好意思。以前在sql   server   6.5这么改过。  
  实在没有别的办法的话,直接对master库的用户表修改。将1改成0。  
  master库中spt_datatype_info用户表的CASE_SENSITIVE字段中的值:  
  0不区分大小写,1区分大小写Top

12 楼cjp2006(飞行棋)回复于 2006-03-09 17:25:40 得分 0

我master库中spt_datatype_info用户表的CASE_SENSITIVE字段中的值全都是0哦。怎么办?Top

13 楼cooleader320()回复于 2006-03-09 18:40:19 得分 0

把查询结果转换成2进制比较阿啊。  
  Top

14 楼cjp2006(飞行棋)回复于 2006-03-09 19:09:31 得分 0

学生我不够聪明,请说详细些,好吗?Top

15 楼cjp2006(飞行棋)回复于 2006-03-09 20:30:34 得分 0

拜托各位高手多多指教。我急需解决这个问题。Top

16 楼jysh321(蒙面天涯)回复于 2006-03-09 20:32:11 得分 0

关注  
   
  Top

17 楼zouqiang122(先天不足)回复于 2006-03-09 21:17:10 得分 0

支持一睛!!!Top

18 楼cjp2006(飞行棋)回复于 2006-03-10 08:39:31 得分 0

谢谢大家,为了解决这个问题,我重装了SQLServer2000,并且安装时选择自定义安装,把排序规则也设成不区分大小写了。可是问题依旧,真希望有高手能快点告诉我怎么解决。在此先谢谢了!!!!Top

19 楼wgsasd311(自强不息)回复于 2006-03-10 08:47:30 得分 0

谢谢大家,为了解决这个问题,我重装了SQLServer2000,并且安装时选择自定义安装,把排序规则也设成不区分大小写了。可是问题依旧,真希望有高手能快点告诉我怎么解决。在此先谢谢了!!!!===========>关于排序问题,你改变了数据库排序只是对以后在此数据库新建的表起作用,以前建的表是不会变动的,只有手工改排序或删了重建此表.Top

20 楼cjp2006(飞行棋)回复于 2006-03-10 08:58:14 得分 0

我是重装了sqlserver后,再新建个数据库,然后把以前的数据库恢复回去,这样不行的吗?一定要一个一个表重建吗?Top

21 楼WYZSC(007,重在参乎,说错问错勿怪。)回复于 2006-03-10 09:11:07 得分 0

关注Top

22 楼Jane_64()回复于 2006-03-10 09:19:44 得分 50

你在表结构定义中,l.LogoName字段用了“排序规则:Chinese_PRC_CS_AI”了吧!!!!  
  用下面语句查询试试:  
  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.LogoNameTop

23 楼cjp2006(飞行棋)回复于 2006-03-10 09:29:04 得分 0

那个字段里的结构定义排序规则是默认的,而且我在新建数据库时也已经设成Chinese_PRC_CI_AI了,照您这个方法真的可以不分大小写哦。谢谢。看来我只能改语句了。真的太谢谢了。Top

24 楼cjp2006(飞行棋)回复于 2006-03-10 09:35:40 得分 0

虽然这个问题没有找到根本原因,不过,还是可以很容易实现不分大小写。真心感谢Top

25 楼cdj_58(飘)回复于 2006-03-10 09:57:37 得分 0

使用like是区分大小写的,Top

26 楼cdj_58(飘)回复于 2006-03-10 10:01:35 得分 0

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   UPPER(l.LogoName)   like   '%a%'   and   l.LogoSpc   like   '%%'   order   by   l.LogoNameTop

27 楼cdj_58(飘)回复于 2006-03-10 10:08:49 得分 0

不好意思,把upper   换为   LowerTop

28 楼lovecat_sc()回复于 2006-03-10 16:42:34 得分 0

我认为cdj_58的方法也可以,LZ试过吗?Top

29 楼bbbbcccc()回复于 2006-03-10 16:49:43 得分 0

http://valenhua.go3.icpcn.com/Top

相关问题

  • SQLserver 用sa登陆 会区分大小写
  • 急急急!!!如何在SQL6.5中关掉大小写区分????
  • indexOf()方法如何不区分大小写?急!!在线等待!
  • serverlet区分大小写吗?
  • 大哥们,为什么这里区分不了大小写啊???急!!!
  • 如果设置数据库不区分大小写????急...在线等
  • 参考论坛中区分大小写的方法出现新的问题,急
  • 为什么pb不区分大小写??
  • 查找时怎样区分大小写
  • 如何让sql server2000区分大小写?

关键词

  • sqlserver2000
  • 排序
  • 数据库
  • 字段
  • 查询
  • 分析器
  • 语句
  • 服务器
  • 安装
  • 区分大小写

得分解答快速导航

  • 帖主:cjp2006
  • Jane_64

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo