开发时写sql语句是不区分大小写的,因为创建数据库表时默认是设置成不区分大小写。我们是可以修改的,如下图:
设置数据库大小写敏感:
右击数据库选择属性,再选中选项,右边即可设置。
不用界面操作,还可以用sql语句来设置,如下:
设置数据库大小写敏感:
use master go alter database [RealyUse] collate Chinese_PRC_CS_AI go |
如果执行上面的sql出错“无法用排他锁锁定该数据库,以执行该操作”,可以断开与数据库的连接,重连一次,确保只有一个用户操作数据库。 |
设置数据库大小写不敏感:
use master go alter database [RealyUse] collate Chinese_PRC_CI_AI go |
虽然设置了数据库大小写敏感,但我测试查询语句时并没有效果。
因为真正查询时是到某个字段,而字段的大小写敏感在创建时已经设置了,下面讲如何设置字段大小写敏感。
不过我们可以设置查询时指定字段有大小写敏感:
--指定字段大小写敏感select 无数据 select * from testone where name collate Chinese_PRC_CS_AS = 'LyT' --普通select 有数据 select * from testone where name = 'LyT' |
设置表内某字段大小写敏感:
--设置表内某字段大小写敏感 alter table testone alter column name nvarchar(50) collate chinese_prc_cs_as |
这时,普通的select语句已经对 name字段自动有大小写敏感了。 |
设置表内某字段大小写不敏感:
alter table testone alter column name nvarchar(50) collate chinese_prc_ci_as |
参考值:
Chinese_PRC_CS_AI_KS_WS 前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。 排序规则的后半部份即后缀 含义: _BIN 二进制排序 _CI(CS) 是否区分大小写,CI不区分,CS区分 _AI(AS) 是否区分重音,AI不区分,AS区分 _KI(KS) 是否区分假名类型,KI不区分,KS区分 _WI(WS) 是否区分宽度 WI不区分,WS区分 |