次の方法で共有


ユーザー定義データベースの照合順序が master データベースおよび model データベースの照合順序と一致するように設定

このルールでは、ユーザー定義データベースの定義に使用されたデータベース照合順序と master または model の照合順序が一致しているかどうかを確認します。

ベスト プラクティスと推奨事項

ユーザー定義データベースの照合順序と master または model データベースの照合順序を一致させることをお勧めします。照合順序が一致していない場合、照合順序の競合が発生してコードが実行されなくなる可能性があります。たとえば、ストアド プロシージャによってあるテーブルを一時テーブルに結合すると、ユーザー定義のデータベースと model データベースの照合順序が異なる場合、SQL Server ではバッチが終了し、照合順序の競合エラーが返されることがあります。この現象は、一時テーブルが tempdb に作成されることが原因で発生します。tempdb の照合順序は、model データベースの照合順序に基づいています。

照合順序の競合エラーが発生した場合は、次のいずれかの解決策を検討してください。

  • データをユーザー データベースからエクスポートし、照合順序が master データベースおよび model データベースと同じ新しいテーブルにインポートします。

  • ユーザー データベースの照合順序と一致する照合順序を使用するようにシステム データベースを再構築します。システム データベースを再構築する方法の詳細については、「システム データベースの再構築」を参照してください。

  • ユーザー テーブルを tempdb 内のテーブルに結合するストアド プロシージャを、ユーザー データベースの照合順序を使用して tempdb にテーブルを作成するように変更します。これを行うには、次の例に示すように、一時テーブルの列定義に COLLATE database_default 句を追加します。

    CREATE TABLE #temp1 ( c1 int, c2 varchar(30) COLLATE database_default )