2012-03-22 14 views
1

私は1つの質問がありますが、私はインターネット上でより多くの情報を見つけようとしていましたが、まだ分かりません。SQL Server照合の設定と変更

次のデフォルトの照合の例「Modern_Spanish_CI_AS」を持つSQL Serverインスタンスがあり、別の照合の例「Latin1_General_CI_AS」を使用して復元されたデータベースもあります。

SQL Serverはどのような照合を使用しますか?デフォルトではModern_Spanish ...またはLatin1_Generalデータベースから使用されますか? follwingリンクで

はそれについて何か Setting and Changing the Server Collation

感謝を説明します!

答えて

2

データベース自体に設定されているLatin1_General_CI_AS照合が使用されます。

説明を明確にするために、データベースに設定されているものはすべて、サーバーの「デフォルト」の照合よりも優先されます。既定の照合は、基本的には、新しいデータベースを作成する場合にのみ使用されます。

サーバレベルでデフォルトの照合順序を変更しても、既存のデータベースには何の影響もありませんが、照合順序を個別に変更する必要がありますが、作成した他のデータベースレベルのオブジェクトストアドプロシージャ、制約、さらにはサードパーティ製のアプリケーションからデータベースに対して実行している動的SQLなどです。

+0

(var)charカラムで作成したインデックスとそれらのインデックスの統計にも影響します。 –

2

SQL Serverの照合順序は、サーバー、データベース、列、移動などのさまざまなレベルで設定できます。下位レベルで照合順序を設定しないと、上のレベルから照合順序が継承されます。例えば。データベースを作成するときに明示的にDBの照合順序を設定しない限り、データベース照合はサーバーの照合になります。

多くの照合は正常に機能します。時には困難があり、しばしば予期せぬ並べ替え順序の性質があります。私は確かに分かっていませんが、あなたが指定したものが互換性があると思います。

あなたのDBは(ほぼ確実に)Latin1_General_CI_AS照合で復元され、ほぼ確実です。互換性のある照合のリストがあり、Googleがその検索を手助けできるはずです。

+2

復元されたデータベースが一時表を使用している場合は、すべてが正常ではありません。テンポラリテーブルのデフォルトは、tempdbの照合になります。これは、サーバのデフォルトと同じです。災害につながる可能性のあるシナリオの1つは、データベースが一時表を作成し、その表のうちの1つへの結合など、照合に敏感な操作を実行する場合です。 –

関連する問題