今天有個頁面吐出 HTTP 500,錯誤訊息是 SQL Server 的定序衝突:
PHP Fatal error: Uncaught PDOException: SQLSTATE[42000]: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與 "Chinese_Taiwan_Stroke_CS_AS" 之間的定序衝突。
問了一下發現是我們原本的資料庫預設值是 Chinese_Taiwan_Stroke_CI_AS,根據《Microsoft SQL Server 的定序和字元集》,這表示「Chinese-Taiwan-Stroke、不區分大小寫、區分重音、不區分假名、不區分寬度」。