如何设置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属性,也就是这样方便快捷。

猜你喜欢

转载自blog.csdn.net/xianjuke008/article/details/84131979