サーバーの照合順序の設定または変更

適用対象:yesSQL Server (サポートされているすべてのバージョン) YesAzure SQL Managed Instance

サーバーの照合順序は、SQL Server のインスタンスと共にインストールされるすべてのシステムデータベースと、新しく作成されたユーザーデータベースの既定の照合順序として機能します。

サーバー レベルの照合順序は、次のことに影響する可能性があるため、慎重に検討する必要があります。

  • =JOINORDER BY、ならびにテキスト データを比較するその他の演算子の並べ替えルールと比較ルール。
  • システム ビュー、システム関数、TempDB のオブジェクト (一時テーブルなど) の CHARVARCHARNCHARNVARCHAR 列の照合順序。
  • 変数、カーソル、GOTO ラベルの名前。 変数の @pi と @PI は、サーバーレベルの照合順序で大文字と小文字が区別される場合は異なる変数であると、区別されない場合は同じ変数であると見なされます。

SQL Server でのサーバーの照合順序

サーバーの照合順序は SQL Server のインストール時に指定します。 既定のサーバーレベルの照合順序は、オペレーティング システムのロケールに基づいています。

たとえば、英語 (米国) (en-us) を使用するシステムの既定の照合順序は SQL_Latin1_General_CP1_CI_AS です。 既定の照合順序マッピングに対する OS ロケールの一覧などの詳細については、「照合順序と Unicode のサポート」の「サーバーレベルの照合順序」を参照してください。

Note

SQL Server Express LocalDB のサーバーレベルの照合順序はSQL_Latin1_General_CP1_CI_ASであり、インストール中またはインストール後には変更できません。

SQL Server でサーバーの照合順序を変更する

SQL Server のインスタンスの既定の照合順序の変更は、複雑な操作になることがあります。

Note

SQL Server のインスタンスの既定の照合順序を変更するのではなく、ステートメントと ALTER DATABASE ステートメントの CREATE DATABASE 句を使用 COLLATE して、作成する新しい各データベースの既定の照合順序を指定できます。 詳細については、「 Set or Change the Database Collation」を参照してください。

インスタンスの照合順序を変更するには、次の手順のようにします。

  • ユーザー データベースおよびユーザー データベース内のすべてのオブジェクトを再作成するのに必要なすべての情報またはスクリプトがあることを確認します。

  • bcp ユーティリティなどのツールを使用して、すべてのデータをエクスポートします。 詳細については、「データの一括インポートと一括エクスポート (SQL Server)」を参照してください。

  • すべてのユーザー データベースを削除します。

  • masterコマンドの sqlcollation プロパティで新しい照合順序を指定して、データベースを master 再構築します。 次に例を示します。

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
    /SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]
    /SQLCOLLATION=CollationName  
    

    詳細については、「 システム データベースの再構築」を参照してください。

  • すべてのデータベースとデータベース内のすべてのオブジェクトを作成します。

  • すべてのデータをインポートします。

Managed Instance でサーバー照合順序を設定する

Azure SQL Managed Instance のサーバーレベルの照合順序は、インスタンスの作成時に指定できますが、後で変更することはできません。 インスタンスを作成しているときに、Azure Portal または PowerShell と Resource Manager テンプレートを使用してサーバーレベルの照合順序を設定できます。 サーバーレベルの既定の照合順序は SQL_Latin1_General_CP1_CI_AS です。

SQL Server から Managed Instance にデータベースを移行する場合、SERVERPROPERTY(N'Collation') 関数を使用してソース SQL Server でサーバー照合順序を確認し、ご利用の SQL Server の照合順序に一致する Managed Instance を作成します。 一致しないサーバーレベル照合順序で SQL Server から Managed Instance にデータベースを移行すると、クエリで予想外のエラーがいくつか発生することがあります。 既存の Managed Instance のサーバー レベル照合順序を変更することはできません。

次の手順