1. 程式人生 > 其它 >解決 SqlServer 排序規則問題 SQL_Latin1_General_CP1_CI_AS“ and “Chinese_PRC_CI_AS“,無需重灌資料庫,命令列修改

解決 SqlServer 排序規則問題 SQL_Latin1_General_CP1_CI_AS“ and “Chinese_PRC_CI_AS“,無需重灌資料庫,命令列修改

技術標籤:資料庫mysql排序運維伺服器

最近做了個國外專案,使用了國外伺服器,伺服器系統也是英文作業系統。

專案部署上去後,執行時出現類似"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、注意!!!使用該方法修改排序規則後資料庫會被分離,重新附加資料庫即可