TSQL Case Sensitive Query – TSQL 如何寫一條Query可以做一個Case Sensitive match

今日公司有一個程式出現了一個問題
內容大概是這樣的 “Incorrect syntax near the keyword ‘and’
TSQL Incorrect syntax near the keyword
程式是用來執行一些使用者寫個SQL…
我們這個程式當作 Data Integrity Checker
誰不知有使用者在更新這個Table上的 SQL 寫了一些有Syntax Error
SQL Query 沒有檢查便儲存了
嘗試使用Query去找出那些SQL Query‘and’這個字
但是由於之前設定 Database 時設定了 TSQL 是 Case Insensitive的關係
所以便出現了很多 有 And的 record出現 E.G. ‘AND’, ‘And’, ‘and’ 等等

那麼怎樣可以寫一條Query可以做一個Case Sensitive match
做了一會research之後發現 原來解決方法十分簡單

解決方法:
我們只需要 在 WHERE Clause上 要比較的 Field上使用COLLATE Latin1_General_CS_AS [一個Case Sensitive的 collation/ 排序規則] 便可
E.G.

SELECT *
FROM DataIntegrityTable
WHERE IntegritySQL LIKE '%and%' COLLATE Latin1_General_CS_AS

Hope you find it useful

Leave a Reply