主题:为什么'aa'会等于'AA'呢?
xsx
[专家分:190] 发布于 2006-06-15 11:26:00
在查询分析器输入:
declare @q char(10)
declare @qq char(10)
set @q='aa'
set @qq='AA'
if @q=@qq
print 't'
else
print 'f'
执行结果:t
为什么'aa'会等于'AA'呢?
回复列表 (共6个回复)
沙发
cwb1128 [专家分:3120] 发布于 2006-06-15 14:28:00
一般情况下sql 语句是不区分大小写的!!
板凳
rr5566 [专家分:460] 发布于 2006-06-15 15:54:00
数据库就是不区分大小写的。所以你不必惊奇。
3 楼
xsx [专家分:190] 发布于 2006-06-15 18:43:00
不区分大小写的后果就是,我删除sm8880000记录时,把SM8880000记录也删掉了。请问如何避免此类问题呢?
4 楼
cwb1128 [专家分:3120] 发布于 2006-06-15 19:11:00
在你那个表上点右键,选择 设计表 ,然后在这个列对应的列名上点一下,在最后一行有个排序规则,点一下后边的带三个点的按纽,在出现的那个界面中选中 区分大小写,然后确定就可以了。。
5 楼
菜鸭 [专家分:5120] 发布于 2006-06-16 07:43:00
declare @q char(10)
declare @qq char(10)
set @q='aa'
set @qq='AA'
if @q collate Chinese_PRC_CS_AS_WS=@qq collate Chinese_PRC_CS_AS_WS
print 't'
else
print 'f'
执行结果:f
6 楼
233238447 [专家分:1350] 发布于 2006-06-16 20:50:00
@q collate Chinese_PRC_CS_AS_WS=@qq
这句话是什么意思?
我来回复