如何设置Sql Server数据库查询时区分大小写和全角半角

开发中常用的数据库有Oracle和Sql Server,Oracle数据库在查询的时候是有大小写区分的,而Sql Server数据库则不区分大小写,如何使Sql Server数据库在查询时有大小写的区分呢?下面我们就来总结一下:

 

 

要想设置Sql Server数据库区分大小写问题,首先要知道四个属性:

创建时可以使用:

COLLATE Chinese_PRC_CI_AS 不区分大小写(默认)

COLLATE Chinese_PRC_CS_AS 区分大小写

 

查询时可以使用:

COLLATE Chinese_PRC_CI_AI 不区分大小写(默认)

COLLATE Chinese_PRC_CS_AI 区分大小写

 

设置Sql Server数据库区分大小写的方法:

1、在新建数据库时设置其大小写区分

CREATE DATABASE DBTEST COLLATE CHINESE_PRC_CS_AS

 

2、如果你在创建数据库时没有设置大小写区分,可以修改数据库

ALTER DATABASE DBTEST  COLLATE  CHINESE_PRC_CS_AS

 

3、为某一张表的某一列设置区分大小写

CREATE TABLE T_USER(

USERID INT PRIMARY KEY,

USERNAME VARCHAR(20) COLLATE CHINESE_PRC_CS_AS,

PASSWORD VARCHAR(20) COLLATE CHINESE_PRC_CS_AS

)

 

4、如果你在创建表时没有设置大小写区分,可以修改表

ALTER TABLE T_USER

ALTER COLUMN USERNAME NVARCHAR(20) COLLATE CHINESE_PRC_CS_AS

 

5、如果你在创建数据库或创建表时没有设置其大小写区分,又想在Sql Server查询时使其区分大小写,可以使用下面的方法实现,加上CHINESE_PRC_CS_AS_WS属性之后,查询的结果就会根据查询条件进行严格匹配

SELECT * FROM T_USER

WHERE USERNAME COLLATE Chinese_PRC_CS_AI = 'user1'

 

SELECT * FROM T_USER

WHERE USERNAME COLLATE Chinese_PRC_CS_AI LIKE 'us%'

 

6、如果你原来创建数据库或表时设置了区分大小写的功能,现在查询时,又不想其区分大小写了,可以在查询中加上Chinese_PRC_CI_AS属性,这样查询结果就不会大小写严格匹配

SELECT * FROM T_USER

WHERE USERNAME COLLATE Chinese_PRC_CI_AI = 'user1'

 

SELECT * FROM T_USER

WHERE USERNAME COLLATE Chinese_PRC_CI_AI LIKE 'us%'

 

7、区分全角半角的属性

区分全角半角

Chinese_PRC_CI_AS_WS 区分全角半角

 

区分大小写和全角半角

Chinese_PRC_CS_AS_WS 区分大小写和全角半角

 

建议:在创建数据库或表时,不要设置其区分大小写,不建议使用1、2、3、4的方法,建议在查询的时候使用Chinese_PRC_CS_AI属性或Chinese_PRC_CI_AI属性,也就是这样方便快捷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值