2

CRM 2011 データベースのコレクションがあり、そのすべてが SQL 2008 R2 を実行している同じ SQL サーバーにインストールされています。これらのデータベースの 1 つには の照合がModern_Spanish_Cl_Alあり、他のすべてのデータベースは に設定されていLatin1_General_Cl_Alます。すべてを Latin1 に設定したいので、戻ってスペイン語のデータベースを他のデータベースと同じように修正したいと思います。

Modern_Spanish_Cl_Alデータベースの照合順序を からに変更するにはどうすればよいLatin1_General_Cl_Alですか?

UI を使用してデータベース レベルで実行しようとしましたが、次のような 100 万のエラーが発生しました。

統計「TeamBase.fndx_Sync_VersionNumber」は、データベースの照合に依存します。スキーマ バインド オブジェクトがデータベースの照合順序に依存している場合、データベースの照合順序を変更することはできません。データベース照合に対する依存関係を削除してから、操作を再試行してください。

UI を使用しながら列レベルに移動しようとしましたが、別のエラー メッセージが表示されました。

変更の保存は許可されていません。行った変更により、次のテーブルを削除して再作成する必要があります...

私はテスト環境でこの問題に取り組んでいるので、喜んで実験を行います。私がやろうとしていることは、CRM を壊さない限り不可能かもしれないことを認識しています。

4

1 に答える 1

1

正しい照合順序で新しい DB を作成しようとしましたか

CREATE DATABASE DatabaseName COLLATE Latin1_General_Cl_Al;

そして、間違った照合順序でデータベースを新しいものにバックアップ復元しますか?
これが機能する場合は、Deployment Manager の組織のインポート ウィザードを使用して、新しいデータベースに基づいて新しい組織をインポートする必要があります。

編集

これを調べたところ、バックアップ/復元を行っている場合でも、照合順序を変更するのはかなり難しいようです。
データベースレベルで照合を変更したい場合の唯一のオプションは、

ALTER DATABASE ... COLLATE 

ただし、それは新しいオブジェクトにのみ影響します。次に、ALTER TABLE を使用して既存のテーブルを変更する必要があります。

さらに、照合順序はデータの並べ替え方法と保存方法を指定するため、すべてのデータをエクスポートして再度取り込む必要があります (たとえば、BCP と BULK INSERT を使用)。

これに加えて、列の特定のプロパティは、その照合順序が変更されないようにします (特定の制約やスキーマにバインドされた関数参照など)。データベース全体の照合順序を変更したい場合、おそらく最も簡単な方法は、データベースをスクリプト化し、適切な照合順序で新しいデータベースを作成してから、データを新しいデータベースにシャッフルすることです。

于 2013-06-17T11:40:04.250 に答える