1. 程式人生 > >如何設定Sql Server資料庫查詢時區分大小寫和全形半形

如何設定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屬性,也就是這樣方便快捷。