僅對某表的特定列(如密碼列)啟用大小寫敏感,不影響全庫其他列。
-- 修改單列排序規則為大小寫敏感 (CS = Case Sensitive)
ALTER TABLE Users
ALTER COLUMN Password NVARCHAR(100) COLLATE Chinese_PRC_CS_AS;
-- 驗證
SELECT * FROM Users WHERE Password = 'Abc123'; -- 區分大小寫
SELECT * FROM Users WHERE Password = 'abc123'; -- 不匹配上條
-- 恢復不區分大小寫 (CI = Case Insensitive)
ALTER TABLE Users
ALTER COLUMN Password NVARCHAR(100) COLLATE Chinese_PRC_CI_AS;
PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT 等約束,否則需先刪除約束再修改再重建。Chinese_PRC_CS_AS(中文、大小寫敏感、重音敏感),Chinese_PRC_CI_AS(不區分大小寫)。ALTER DATABASE MyDB COLLATE Chinese_PRC_CS_AS; 影響後續新建表/列的默認值,不改變現有列。若不想修改表結構,可在查詢中指定:
SELECT * FROM Users WHERE Password = 'Abc123' COLLATE Chinese_PRC_CS_AS;