-- 區分大小寫
SELECT * FROM table_a WHERE col = 'AbCdE' COLLATE Chinese_PRC_CS_AI;
-- 不區分大小寫
SELECT * FROM table_a WHERE col = 'abCdE' COLLATE Chinese_PRC_CI_AI;
CS = Case Sensitive(區分大小寫),CI = Case Insensitive(不區分)。ALTER DATABASE testgrass COLLATE Chinese_PRC_CS_AI;
ALTER TABLE ... ALTER COLUMN ... COLLATE ...。-- 使用 Rebuildm.exe 重建 master 資料庫
-- 路徑範例:SQL Server\80\Tools\Binn\rebuildm.exe
-- 建表時指定
CREATE TABLE t1 (
pwd NVARCHAR(10) COLLATE Chinese_PRC_CS_AS NULL
);
-- 修改既有欄位
ALTER TABLE t1 ALTER COLUMN pwd NVARCHAR(10) COLLATE Chinese_PRC_CS_AS;
範例:Chinese_PRC_CS_AI_WS
| 部分 | 範例 | 含義 |
|---|---|---|
| 字元集前綴 | Chinese_PRC_ | 大陸簡體中文 Unicode 排序規則 |
| 後綴 _CI / _CS | _CS | CI = 不區分大小寫,CS = 區分大小寫 |
| 後綴 _AI / _AS | _AI | AI = 不區分重音,AS = 區分重音 |
| 後綴 _KI / _KS | _KS | KI = 不區分假名,KS = 區分假名(日文) |
| 後綴 _WI / _WS | _WS | WI = 不區分全半形寬度,WS = 區分全半形寬度 |
| 後綴 _BIN | _BIN | 二進位排序(最快,依碼位比較) |
SELECT * FROM ::fn_helpcollations();
Chinese_PRC_CI_AS(不區分大小寫、區分重音)或 Latin1_General_CI_AS,符合大多數中文應用習慣。CS(區分大小寫),如 pwd NVARCHAR(50) COLLATE Chinese_PRC_CS_AS。COLLATE 避免 Collation 衝突錯誤:ON a.col COLLATE Chinese_PRC_CI_AS = b.col COLLATE Chinese_PRC_CI_AS正確理解與設定 Collation,能避免查詢結果不符預期、JOIN 失敗、索引無法使用等隱性問題。