Sql-Server

SQL Server 2008R2 數據庫遷移到雲:不區分大小寫的排序規則更改為區分大小寫

  • July 11, 2018

最近感覺到第三方供應商數據庫遷移的失敗(糟糕的遺留程式碼庫),其中排序規則從不區分大小寫轉換為區分大小寫。我想知道在遷移過程中是否故意更改了排序規則?我原以為在任何數據庫遷移中,排序規則都將保持不變(即與源數據庫排序規則保持不變)。託管數據庫的伺服器是否會自動覆蓋排序規則?

問題中缺少很多資訊,例如:

  1. “雲”到底是什麼意思?
  • 微軟 Azure SQL 數據庫
  • Microsoft Azure SQL 數據庫託管實例
  • 安裝了 SQL Server 的 Microsoft Azure VM
  • 亞馬遜 (AWS) RDS
  • 安裝了 SQL Server 的 Amazon (AWS) VM?
  • 別的東西
  1. “遷移”是什麼意思?
  1. “數據庫”是什麼意思?
  • 駐留在 SQL Server 實例中的實際數據庫
  • 包含數據庫的 SQL Server 實例
  1. “蹩腳的遺留程式碼庫”如何影響此排序規則問題?或者它只是發洩/kvetching?

一般來說,沒有明顯/預設的答案,因為沒有單一的機制/方法來遷移數據,在這種情況下也沒有“雲”的單一定義。我希望某些選項(例如從**.bak**備份文件恢復)將保持數據庫的預設排序規則完好無損,但這並不意味著實例級排序規則的任何內容。

這歸結為:即使沒有更詳細的資訊可以繼續,因為在某個級別(實例和/或數據庫)存在排序規則差異,執行遷移的供應商似乎沒有仔細確保a)如果可以選擇設置新的排序規則,則使用完全相同的排序規則,或者 b) 通知您,如果沒有選擇,特定級別的排序規則將發生變化並且它是將不同於目前的排序規則。

我肯定會就這個問題聯繫供應商。通常,如果存在無法更改的預設排序規則,則它只是實例級別,並且區分大小寫:

  • Azure SQL 數據庫託管實例使用:(SQL_Latin1_General_CP1_CI_AS不幸的是)
  • 部分包含的數據庫使用:Latin1_General_100_CI_AS_WS_KS_SC
  • SQL Server Express Local DB 使用:(SQL_Latin1_General_CP1_CI_AS不幸的是)

參考:

引用自:https://dba.stackexchange.com/questions/211843