安裝後更改 SQL Server 2019 實例排序規則,出現新問題
如何在 SQL Server 2019 上解決此問題
- 使用錯誤的排序規則安裝 SQL Server 2 個月前
- 恢復了來自 SharePoint 管理員的關於排序規則問題的報告
- Resolve problem with MSSQLTIPs resolve solution (Use Option # 2) Change default collation behavior after installation with this link
- CMD 以管理員身份執行
- 查找 SQL Server Binn 目錄
執行這個:
sqlservr -m -T4022 -T3659 -s"MSSQLSERVER" -q"SQL_Latin1_General_CP1_CI_AI"
所有數據庫(系統和新數據庫)執行良好,排序規則已更改
但是,當創建新數據庫時,嘗試打開表時正確設置了數據庫的排序規則
Latin
,從對象資源管理器中引發了此錯誤,並且沒有出現任何內容:附加資訊:執行 Transact-SQL 語句或批處理時發生異常。無法解決 SELECT 語句列 2 中發生的 UNION ALL 運算符中的“SQL_Latin1_General_CP1_CI_AS”和“Persian_100_CI_AI_SC_UTF8”之間的排序規則衝突。由於綁定錯誤,無法使用視圖或函式 sys.all_columns。(Microsoft SQL Server,錯誤:451)
- 重新安裝 SQL Server 是我的三重解決方案,我需要解決方案修復而無需重新安裝。
我試圖用更改模型數據庫排序規則來解決。
我對打開的使用者屬性有這個問題,在安全>登錄>sa右鍵點擊屬性並引發錯誤’無法顯示請求對話框’我在數據庫範圍內沒有這個問題。
問題是實例級排序規則(即“伺服器”排序規則)與您正在使用的數據庫的數據庫級排序規則之間的排序規則不匹配。您的實例級排序規則是
Persian_100_CI_AI_SC_UTF8
,系統數據庫的數據庫級排序規則是SQL_Latin1_General_CP1_CI_AS
(嗯,至少根據錯誤消息;根據 SSMS 的螢幕截圖,您的系統數據庫正在使用SQL_Latin1_General_CP1_CI_AI
- 唯一的區別是_AS
vs_AI
- 這表明初始排序規則是SQL_Latin1_General_CP1_CI_AS
或執行了多次執行sqlservr.exe -q
,或者可能生成錯誤的數據庫不在螢幕截圖列表中*,並且*在執行後恢復sqlservr -q
)。此問題的原因可能是以下之一:
- 將數據庫還原到與正在還原的數據庫具有不同實例級排序規則的伺服器上,或者
- 執行 undocumented
sqlservr.exe -q
以更改所有排序規則,但在轉換數據庫時失敗。您需要檢查執行時生成的日誌消息sqlservr.exe -q
以查看它是哪一條,或者您可能需要簡單地sqlservr.exe -q
再次執行才能查看。-q
該過程的最後一步是更改實例級排序規則,因此如果實例級排序規則與選項中指定的排序規則不匹配sqlservr.exe
,則它沒有成功完成。請參閱我關於該方法的部落格文章,以
sqlservr.exe -q
獲取有關使用它時可能出錯的各種事情的更多詳細資訊: