Sql-Server
SQL Server 2008R2 數據庫遷移到雲:不區分大小寫的排序規則更改為區分大小寫
最近感覺到第三方供應商數據庫遷移的失敗(糟糕的遺留程式碼庫),其中排序規則從不區分大小寫轉換為區分大小寫。我想知道在遷移過程中是否故意更改了排序規則?我原以為在任何數據庫遷移中,排序規則都將保持不變(即與源數據庫排序規則保持不變)。託管數據庫的伺服器是否會自動覆蓋排序規則?
問題中缺少很多資訊,例如:
- “雲”到底是什麼意思?
- 微軟 Azure SQL 數據庫
- Microsoft Azure SQL 數據庫託管實例
- 安裝了 SQL Server 的 Microsoft Azure VM
- 亞馬遜 (AWS) RDS
- 安裝了 SQL Server 的 Amazon (AWS) VM?
- 別的東西
- “遷移”是什麼意思?
- 數據庫被分離/附加,或備份/恢復
- 對象和數據通過腳本移出並在目的地應用,或直接 ETLed
- 數據遷移助手
- SSDT 和 BACPAC 文件
- Azure 數據庫遷移服務
- “數據庫”是什麼意思?
- 駐留在 SQL Server 實例中的實際數據庫
- 包含數據庫的 SQL Server 實例
- “蹩腳的遺留程式碼庫”如何影響此排序規則問題?或者它只是發洩/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
不幸的是)參考: