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

適用対象: SQL ServerAzure SQL Managed Instance

サーバー照合順序は、SQL Server のインスタンスと一緒にインストールされているすべてのシステム データベースだけではなく、新しく作成したユーザー データベースの既定の照合順序になります。

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

  • =JOINORDER BY、ならびにテキスト データを比較するその他の演算子の並べ替えルールと比較ルール。
  • システム ビュー、システム関数、NVARCHAR のオブジェクト (一時テーブルなど) の CHARVARCHARNCHARtempdb 列の照合順序。
  • 変数、カーソル、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 のインスタンスの既定の照合順序を変更する代わりに、COLLATE ステートメントと CREATE DATABASE ステートメントの ALTER DATABASE 句を通じて、新しく作成するデータベースごとに既定の照合順序を指定することができます。 詳細については、「 Set or Change the Database Collation」を参照してください。

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

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

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

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

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

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

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

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

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

Azure SQL Managed Instance のサーバーの照合順序を設定する

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

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

Azure SQL Database の照合順序

Azure SQL Database で論理サーバーの照合順序を変更または設定することはできませんが、データとカタログの両方に対して各データベースの照合順序を構成できます。 カタログの照合順序は、オブジェクト識別子などのシステム メタデータの照合順序を決定します。 Azure portal でデータベースを作成するとき、T-SQL で CREATE DATABASE を使用するとき、PowerShell で New-AzSqlDatabase を使用するときに、両方の照合順序を個別に指定できます。