デフォルトでは、SQL Serverデータベースの各列は、データベースレベルで指定された照合を使用します。また、デフォルトでは、データベースの照合はサーバーの照合から取得されます。ただし、これらの照合設定は、データベースレベルと列レベルの両方で、そのレベルで照合を明示的に設定することで上書きできます。
このページでは、列の照合を指定する方法を示します。 T-SQLのCOLLATE
を追加することで、照合を設定できます CREATE TABLE
の句 およびALTER TABLE
ステートメント。これらのステートメントを使用するときは、照合設定を含む列とそのプロパティを定義します。 COLLATE
句はオプションであるため、これを含めない場合、列はデータベースのデフォルトの照合を使用するだけです。
照合を設定する
テーブルを作成するときに照合を指定する例を次に示します。
CREATE TABLE Tasks ( TaskId int IDENTITY(1,1) NOT NULL PRIMARY KEY, TaskName nvarchar(255) COLLATE French_CI_AI NOT NULL );
これにより、Tasks
というテーブルが作成されます 2列あり。 2番目の列(TaskName
)の照合を設定します )to French_CI_AI
。そうしなかった場合は、デフォルトのデータベース照合を使用していました。
照合を変更する
この次の例では、列の照合をModern_Spanish_CI_AI_WS
に変更します。 :
ALTER TABLE Tasks ALTER COLUMN TaskName nvarchar(255) COLLATE Modern_Spanish_CI_AI_WS NOT NULL GO
次のいずれかによって参照される列の照合を変更できないことに注意してください。
- 計算列
- インデックス
- 分布統計
-
CHECK
制約 -
FOREIGN KEY
制約
照合を確認する
SSMSを使用している場合は、オブジェクトブラウザでその列を右クリックし、[Properties
を選択することで、任意の列の照合を確認できます。 。
Transact-SQLでは、列の照合を返す方法がいくつかあります。 T-SQLを使用して列の照合を確認する方法は次のとおりです。