データベースをオンプレミスから Azure に移動しようとしています。アプローチは、.bacpac
オンプレミス サーバーから作成し、それを を使用して Azure DB に復元することsqlpackage.exe
です。
これは私が使用しているコマンドです:
sqlpackage.exe /Action:import
/tcs:"Server=tcp:myserver.database.windows.net,1433;Database=MyDB;Authentication=’Active Directory Integrated’;
/sf=”C:\BD-AZ\myonprembacpac.bacpac”
/p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P1
インポート中に、次のエラーが発生します。
という名前のオブジェクトがデータベースに既に存在します。
現在のオンプレミス データベースでは大文字と小文字が区別され、同じ名前のオブジェクトの大文字と小文字が異なります。そのため、次のように.bacpac
作成されました
<Property Name="Collation" Value="Latin1_General_BIN" />
がmode.xml
期待されます。
私の Azure とオンプレミス サーバー (両方) では、照合順序が に設定されていますSQL_Latin1_General_CP1_CI_AS
。
その Azure DB サーバーには、照合順序がSQL_Latin1_General_CP1_CI_AS
.
したがって、他のアプリでは問題はありません。
- サーバー照合: SQL_Latin1_General_CP1_CI_AS
- DB照合: SQL_Latin1_General_CP1_CI_AS
「データベースに名前が付けられたオブジェクトが既に存在する」という問題がある私のアプリの場合:
- サーバー照合: SQL_Latin1_General_CP1_CI_AS
- DB 照合 : Latin1_General_BIN
.bacpac
現在の照合を使用して、照合を使用してエラーなしLatin1_General_BIN
でサーバーにインポートできますか?SQL_Latin1_General_CP1_CI_AS
この記事からは設計されているように見えますが、それを克服する方法があるかどうかはわかりません. https://techcommunity.microsoft.com/t5/azure-database-support-blog/lesson-learned-97-which-is-the-server-collation-in-azure-sql/ba-p/744183
助言がありますか?