解決 SqlServer 排序規則問題 SQL_Latin1_General_CP1_CI_AS“ and “Chinese_PRC_CI_AS“,無需重灌資料庫,命令列修改
阿新 • • 發佈:2021-01-04
最近做了個國外專案,使用了國外伺服器,伺服器系統也是英文作業系統。
專案部署上去後,執行時出現類似"SQL_Latin1_General_CP1_CI_AS" and "Chinese_PRC_CI_AS" 錯誤。
在本地測試執行又沒問題。。
後來發現原因是因為,英文系統安裝 SQLServer 時 預設排序規則是SQL_Latin1_General_CP1_CI_AS,
而我還原上去的資料庫因為是在國內建立的,預設排序規則是Chinese_PRC_CI_AS,
網上大多的解決方案是重灌資料庫,安裝時重新設定排序規則,
重灌太麻煩,其實使用命令方式也可以修改例項的預設排序規則,方法如下:
1、先使用以下 SQL 語句檢視伺服器排序規則,可見排序規則為SQL_Latin1_General_CP1_CI_AS
SELECT SERVERPROPERTY('Collation')
2、現在要把排序規則改為Chinese_PRC_CI_AS,先使用管理員許可權開啟命令列,進入 sqlerver 安裝目錄
3、停止 sqlserver 服務
net stop mssqlserver
4、修改排序規則
Setup /QUIET /ACTION=REBUILDDATABASE /instancename=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /sapwd=123456 /sqlcollation=Chinese_PRC_CI_AS
格式說明:SQLSYSADMINACCOUNTS為使用者使用電腦管理員賬號,sapwd 為資料庫 sa 密碼,sqlcollation 為需要變更的排序格式
5、啟動 sqlserver 服務
net start mssqlserver
6、再使用SELECT SERVERPROPERTY('Collation') 檢視,可以看見排序規則已經修改成功。
7、注意!!!使用該方法修改排序規則後資料庫會被分離,重新附加資料庫即可