2017-06-15 69 views
1

我們目前有一個SQL Server Kentico數據庫,我們正在考慮遷移到Azure SQL。當前數據庫的歸類類型爲Latin1_General_CI_AS(Kentico默認值),我們的Azure SQL主數據庫爲SQL_Latin1_General_CP1_CI_AS(Azure默認值)。將現有的Kentico數據庫遷移到Azure SQL - 排序規則不匹配

我們最初只是將它導入到一個新的Azure數據庫,似乎工作正常,直到Kentico執行涉及比較系統表和Kentico數據庫之間的字符串的任何查詢。例如該向導在Kentico中創建自定義表並嘗試選擇現有數據庫表時。那時我們意識到master和我們的Kentico數據庫之間的排序不匹配。

有什麼方法可以改變Kentico數據庫上的排序類型或者將我們的Kentico內容等導入新的數據庫嗎?

我們已經嘗試了明顯的 - ALTER DATABASE <name> COLLATE SQL_Latin1_General_CP1_CI_AS,但由於出現錯誤的許多對象都不起作用:「如果模式綁定對象依賴於該數據庫,則無法更改數據庫排序規則。」

我希望不必開始一個新的數據庫,並手動將我們所有的內容和定製遷移到一個新的實例。

回答

1

我想我已經解決了這個自己:)

  1. 二手網站導出的所有對象從我的工作地點出口
  2. 創建一個新的空Azure的SQL數據庫的標準Azure的整理
  3. 改變我的web應用程序的web.config指向新的空數據庫
  4. 運行web應用程序並通過數據庫嚮導在新的空數據庫中設置基準Kentico對象
  5. 創建一個新坐e通過導入我從第1步導出的網站

現在我有我的完整網站等在一個新的數據庫與正確的排序類型。

+0

我們現在有同樣的問題,看起來像這是唯一的解決方案。 – masterlopau

+0

只是一個更新,由於相同的排序問題,網站導出不起作用。 – masterlopau

+0

當我進行站點導出時,它來自不在Azure上的CMS,因此沒有排序規則不匹配。它使用本地SQL實例,將主數據庫設置爲與Kentico相同的歸類。 – Bagman

0

我也有這個痛苦的問題。我不確定爲什麼Kentico將排序規則更改爲默認規則,但好處是Azure現在允許您在創建新數據庫時設置排序規則。您只需要在整理框中輸入'Latin1_General_CI_AS'。

+0

我沒有在Azure中創建數據庫的麻煩,因爲Latin1_General_CI_AS - 問題在於Azure數據庫服務器master數據庫自動設置爲SQL_Latin1_General_CP1_CI_AS,並且當Kentico執行包含master數據庫中的表的查詢時出現問題。 – Bagman

相關問題