201307241052SQL查詢時設定大小寫認定

/*

【Tips】SQL查詢時設定大小寫認定

最近為一個系統要加入使用者帳號認證,在測試時才發現無論key入大寫或是小寫,都可以通過認證進入管理介面,之後找出了問題在於忽略了SQL Server 定序對於大小寫的區分。

寫下這篇文章也是給自己做個筆記 ^_^

 

如果在安裝SQL Server未特別指定資料庫定序的話,預設會是

Chinese_Taiwan_Stroke_CI_AS

其中的 _CI:不分大小寫;_AS:區分腔調字

相反的,如果要區分大小寫的話就必須用

_CS:區分大小寫;_AI:不區分腔調字

 

因此在對應要區分大小寫的使用者帳號、密碼時的SQL語法即可使用:

*/

SELECT left(idno,1) COLLATE Chinese_Taiwan_Stroke_CS_AI x,count(*) cnt 

FROM  dbo.Stud_studentinfo 

group by left(idno,1) COLLATE Chinese_Taiwan_Stroke_CS_AI

order by left(idno,1) COLLATE Chinese_Taiwan_Stroke_CS_AI

 

--SELECT left(idno,1) COLLATE Chinese_Taiwan_Stroke_CS_AI x,count(*) cnt 

select *

FROM  dbo.Stud_studentinfo 

where left(idno,1) COLLATE Chinese_Taiwan_Stroke_CS_AI='張'

/*想知道全部的資料庫定序清單的話,可以在SSMS中使用以下語法:*/

SELECT * FROM fn_helpcollations()

回應
關鍵字
[此功能已終止服務]
    沒有新回應!





Powered by Xuite
希望綠絲帶計劃