创建时可以使用:
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属性,也就是这样方便快捷。
参考文献
《如何设置Sql Server数据库查询时区分大小写和全角半角》https://blog.csdn.net/xianjuke008/article/details/84131979