データベースの照合順序の設定または変更
このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2012 でデータベースの照合順序を設定および変更する方法を説明します。 照合順序を指定しない場合、サーバーの照合順序が使用されます。
このトピックの内容
作業を開始する準備:
制限事項と制約事項
推奨事項
セキュリティ
データベースの照合順序を設定または変更する方法:
SQL Server Management Studio
Transact-SQL
作業を開始する準備
制限事項と制約事項
Windows Unicode 専用の照合順序は、COLLATE 句で nchar、nvarchar、および 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
master データベースの CREATE DATABASE 権限、CREATE ANY DATABASE 権限、または ALTER ANY DATABASE 権限が必要です。ALTER DATABASE
データベースに対する ALTER 権限が必要です。
[Top]
SQL Server Management Studio の使用
データベースの照合順序を設定または変更するには
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続して、そのインスタンスを展開します。次に、[データベース] を展開します。
新しいデータベースを作成する場合は、[データベース] を右クリックし、[新しいデータベース] をクリックします。 既定の照合順序を使用しない場合は、[オプション] ページをクリックし、[照合順序] ボックスの一覧から照合順序を選択します。
データベースが既に存在する場合は、使用するデータベースを右クリックし、[プロパティ] をクリックします。 [オプション] ページをクリックし、[照合順序] ボックスの一覧から照合順序を選択します。
終了したら [OK] をクリックします。
[Top]
Transact-SQL の使用
データベースの照合順序を設定するには
データベース エンジンに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 この例は、COLLATE 句を使用して照合順序名を指定する方法を示しています。 この例は、Latin1_General_100_CS_AS_SC 照合順序を使用する MyOptionsTest を作成します。 データベースを作成したら、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
データベースの照合順序を変更するには
データベース エンジンに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします この例は、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
[Top]
関連項目
参照
sys.fn_helpcollations (Transact-SQL)
SQL Server 照合順序名 (Transact-SQL)
CREATE DATABASE (Transact-SQL)