データベースの照合順序の設定または変更

このトピックでは、SQL Server Management Studioまたは Transact-SQL を使用して、SQL Server 2014 でデータベースの照合順序を設定および変更する方法について説明します。 照合順序を指定しない場合、サーバーの照合順序が使用されます。

このトピックの内容

はじめに

制限事項と制約事項

  • Windows Unicode 専用の照合順序は、COLLATE 句で ncharnvarchar、および ntext の各データ型を列レベルと式レベルのデータに適用する場合にのみ使用できます。 データベースまたはサーバー インスタンスの照合順序を変更するために、COLLATE 句で使用することはできません。

  • 指定した照合順序または参照先オブジェクトで使用される照合順序で、Windows でサポートされていないコード ページが使用されている場合、データベース エンジンはエラーを表示します。

推奨事項

  • サポートされる照合順序名は、「Windows 照合順序名 (Transact-SQL)」と「SQL Server 照合順序名 (Transact-SQL)」で確認できます。または、sys.fn_helpcollations (Transact-SQL) システム関数を使用できます。

  • データベースの照合順序を変更すると、次の変更が行われます。

    • システム テーブル内の char 型、varchar 型、text 型、nchar 型、nvarchar 型、または ntext 型の列はすべて、新しい照合順序に変更されます。

    • ストアド プロージャおよびユーザー定義関数で使用されている char 型、varchar 型、text 型、nchar 型、nvarchar 型、または ntext 型の既存のパラメーターおよびスカラー値の戻り値はすべて、新しい照合順序に変更されます。

    • char 型、varchar 型、text 型、nchar 型、nvarchar 型、または ntext 型のシステム データ型およびこれらを基にしたユーザー定義データ型はすべて、新しい既定の照合順序に変更されます。

  • ユーザー データベースに作成する新しいオブジェクトの照合順序は、 ALTER DATABASE ステートメントの COLLATE 句を使用して変更できます。 このステートメントを実行しても、既存のユーザー定義テーブルの列の照合順序は変わりません。 ALTER TABLEの COLLATE 句で変更することができます。

セキュリティ

アクセス許可

CREATE DATABASE
マスター データベースに CREATE DATABASE 権限が必要か、CREATE ANY DATABASE または ALTER ANY DATABASE 権限が必要です。

ALTER DATABASE
データベースに対する ALTER 権限が必要です。

SQL Server Management Studio を使用する

データベースの照合順序を設定または変更するには

  1. オブジェクト エクスプローラーで、 SQL Server データベース エンジンのインスタンスに接続して、そのインスタンスを展開します。次に、 [データベース] を展開します。

  2. 新しいデータベースを作成する場合は、 [データベース] を右クリックし、 [新しいデータベース] をクリックします。 既定の照合順序を使用しない場合は、 [オプション] ページをクリックし、 [照合順序] ボックスの一覧から照合順序を選択します。

    データベースが既に存在する場合は、使用するデータベースを右クリックし、 [プロパティ] をクリックします。 [オプション] ページをクリックし、 [照合順序] ボックスの一覧から照合順序を選択します。

  3. 終了したら [OK] をクリックします。

Transact-SQL の使用

データベースの照合順序を設定するには

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例は、 COLLATE 句を使用して照合順序名を指定する方法を示しています。 この例は、 MyOptionsTest 照合順序を使用する Latin1_General_100_CS_AS_SC を作成します。 データベースを作成したら、 SELECT ステートメントを実行して設定を検証します。

USE master;  
GO  
IF DB_ID (N'MyOptionsTest') IS NOT NULL  
DROP DATABASE MyOptionsTest;  
GO  
CREATE DATABASE MyOptionsTest  
COLLATE Latin1_General_100_CS_AS_SC;  
GO  
  
--Verify the collation setting.  
SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'MyOptionsTest';  
GO  
  

データベースの照合順序を変更するには

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例は、 ALTER DATABASE ステートメントで COLLATE 句を使用して照合順序名を変更する方法を示しています。 SELECT ステートメントを実行して変更を確認します。

USE master;  
GO  
ALTER DATABASE MyOptionsTest  
COLLATE French_CI_AS ;  
GO  
  
--Verify the collation setting.  
SELECT name, collation_name  
FROM sys.databases  
WHERE name = N'MyOptionsTest';  
GO  
  

参照

照合順序と Unicode のサポート
sys.fn_helpcollations (Transact-SQL)
sys.databases (Transact-SQL)
SQL Server 照合順序名 (Transact-SQL)
Windows 照合順序名 (Transact-SQL)
COLLATE (Transact-SQL)
照合順序の優先順位 (Transact-SQL)
CREATE TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL)
ALTER TABLE (Transact-SQL)
ALTER DATABASE (Transact-SQL)