サーバーの照合順序の設定または変更
適用対象: SQL Server Azure SQL Managed Instance
サーバー照合順序は、 SQL Serverのインスタンスと一緒にインストールされているすべてのシステム データベースだけではなく、新しく作成したユーザー データベースの既定の照合順序になります。
サーバー レベルの照合順序は、次のことに影響する可能性があるため、慎重に検討する必要があります。
=
、JOIN
、ORDER BY
、ならびにテキスト データを比較するその他の演算子の並べ替えルールと比較ルール。- システム ビュー、システム関数、TempDB のオブジェクト (一時テーブルなど) の
CHAR
、VARCHAR
、NCHAR
、NVARCHAR
列の照合順序。 - 変数、カーソル、
GOTO
ラベルの名前。 変数の @pi と @PI は、サーバーレベルの照合順序で大文字と小文字が区別される場合は異なる変数であると、区別されない場合は同じ変数であると見なされます。
SQL Server でのサーバーの照合順序
サーバー照合順序は SQL Server のインストール時に指定します。 既定のサーバーレベルの照合順序は、オペレーティング システムのロケールに基づいています。
たとえば、英語 (米国) (en-us) を使用するシステムの既定の照合順序は SQL_Latin1_General_CP1_CI_AS です。 既定の照合順序マッピングに対する OS ロケールの一覧などの詳細については、「照合順序と Unicode のサポート」の「サーバーレベルの照合順序」を参照してください。
注意
SQL Server Express LocalDB のサーバーレベルの照合順序は SQL_Latin1_General_CP1_CI_AS であり、インストール中またはインストール後に変更することはできません。
SQL Server でサーバーの照合順序を変更する
SQL Server のインスタンスに対する既定の照合順序の変更は、複雑な操作になることがあります。
注意
SQL Server のインスタンスの既定の照合順序を変更する代わりに、CREATE DATABASE
ステートメントと ALTER DATABASE
ステートメントの COLLATE
句を通じて、新しく作成するデータベースごとに既定の照合順序を指定することができます。 詳細については、「 Set or Change the Database Collation」を参照してください。
インスタンスの照合順序を変更するには、次の手順のようにします。
ユーザー データベースおよびユーザー データベース内のすべてのオブジェクトを再作成するのに必要なすべての情報またはスクリプトがあることを確認します。
bcp ユーティリティなどのツールを使用して、すべてのデータをエクスポートします。 詳細については、「データの一括インポートと一括エクスポート (SQL Server)」を参照してください。
すべてのユーザー データベースを削除します。
setup コマンドの 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 のサーバー レベル照合順序を変更することはできません。