我们都知道,在平时数据库开发中是不区分大小写的,但那只是我们平时在创建数据库表时的默认设置,或者是查询时的缺省查询默认的是不区分大小写的,下面就让我们来看一下如何创建大小写敏感的数据库表格,或者是在查询时进行区分大小写的查询。
ALTER TABLE 表名 ALTER COLUMN colunnname nvarchar(100) COLLATE Chinese_PRC_CI_AS --不区分大小写 ALTER TABLE tb ALTER COLUMN colunnname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区分大小写
让我们来看一下修改表格的代码,其中 Chinese_PRC_CI_AS 和COLLATE Chinese_PRC_CS_AS 分别是不区分大小写和区分大小写存储规则,其中 Chinese_PRC两个参数代表大陆简体字UNICODE的排序规则,第三个参数代表了大小写规则,第四个参数代表了重音规则。其含义分别为:
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
另外后面还可以添加两个参数分别表示是否区分假名和是否区分宽度,其代码为:
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度 WI不区分,WS区分
设置参考值有:
1 _CI_AI --不区分大小写、不区分重音、不区分假名类型、不区分宽度 2 _CI_AI_WS -- 不区分大小写、不区分重音、不区分假名类型、区分宽度 3 _CI_AI_KS --不区分大小写、不区分重音、区分假名类型、不区分宽度 4 _CI_AI_KS_WS --不区分大小写、不区分重音、区分假名类型、区分宽度 5 _CI_AS --不区分大小写、区分重音、不区分假名类型、不区分宽度 6 _CI_AS_WS --不区分大小写、区分重音、 不区分假名类型、区分宽度 7 _CI_AS_KS --不区分大小写、区分重音、区分假名类型、不区分宽度 8 _CI_AS_KS_WS --不区分大小写、区分重音、区分假名类型、区分宽度 9 _CS_AI --区分大小写、不区分重音、 不区分假名类型、不区分宽度 10 _CS_AI_WS --区分大小写、不区分重音、不区分假名类型、区分宽度 11 _CS_AI_KS --区分大小写、不区分重音、区分假名类型、不区分宽度 12 _CS_AI_KS_WS --区分大小写、不区分重音、区分假名类型、区分宽度 13 _CS_AS --区分大小写、区分重音、不区分假名类型、不区分宽度 14 _CS_AS_WS --区分大小写、区分重音、不区分假名类型、区分宽度 15 _CS_AS_KS --区分大小写、区分重音、区分假名类型、不区分宽度 16 _CS_AS_KS_WS --区分大小写、区分重音、区分假名类型、区分宽
当然在查询时也可以在where里面设置是否区分大小写,当我们不设置是否区分大小写时默认为建表时的属性,如: