SqlServer数据库配置大小写敏感

时间:2024-05-22 21:01:03

开发时写sql语句是不区分大小写的,因为创建数据库表时默认是设置成不区分大小写。我们是可以修改的,如下图:

设置数据库大小写敏感:

右击数据库选择属性,再选中选项,右边即可设置。

SqlServer数据库配置大小写敏感

不用界面操作,还可以用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区分