Microsoft SQL ServerのUNIQUE制約

主キー制約よりUNIQUE制約を使用するメリット

UNIQUE制約を作成することにより、SQL Serverの管理者は、列に重複値が含まれないことを指定します。 新しいUNIQUE制約を作成すると、SQL Serverはその列をチェックして、重複する値が含まれているかどうかを判断します。 に既存の重複が含まれている場合、制約作成コマンドは失敗します。 同様に、列に対してUNIQUE制約を設定すると、重複の原因となるデータの追加または変更も失敗します。

UNIQUE制約を使用する理由

UNIQUE制約と主キーの両方が一意性を強制しますが、UNIQUE制約がより良い選択である場合があります。

UNIQUE制約の作成

SQL ServerにUNIQUE制約を作成する方法はたくさんあります。 Transact-SQLを使用して既存のテーブルにUNIQUE制約を追加する場合は、次のようにALTER TABLEステートメントを使用できます。

ALTER TABLE ADD CONSTRAINT UNIQUE()を追加します。

GUIツールを使用してSQL Serverと対話したい場合は、 SQL Server Management Studioを使用してUNIQUE制約を作成することもできます。 方法は次のとおりです。

  1. SQL Server Management Studioを開きます。
  2. 制約を作成するデータベースのTablesフォルダーを展開します。
  3. 制約を追加するテーブルを右クリックし、[ 設計 ]をクリックします。
  4. [テーブルデザイナ]メニューの[ インデックス/キー ]をクリックします。
  5. [インデックス/キー]ダイアログボックスで、[ 追加 ] クリックします。
  6. TypeドロップダウンリストでUnique Keyを選択します。

ユニーク制約とユニークインデックス

UNIQUE制約とUNIQUEインデックスの違いについては、いくつかの混乱がありました。 異なるTransact-SQLコマンドを使用してそれらを作成することもできます(制約の場合はALTER TABLE ... ADD CONSTRAINT、インデックスの場合はUNIQUE INDEXを作成します)。ほとんどの場合、同じ効果があります。 実際、UNIQUE制約を作成すると、実際にはその表にUNIQUE索引が作成されます。 しかし、いくつかの違いがあることに注意することは重要です。