一意のインデックスを作成する方法 (Visual Database Tools)

Microsoft SQL Server では、一意の列 (employee id など) に一意のインデックスを作成できます。また、各レコードを一意に識別できる列の組み合わせ (たとえば、author と title) に対しても一意のインデックスを作成できます。

たとえば、employee テーブル (主キーは emp_id) の社会保障番号 (ssn) 列に頻繁にクエリを実行する予定があり、社会保障番号を確実に一意にする場合は、ssn に一意のインデックスを作成します。ユーザーが複数の従業員に同じ社会保障番号を入力すると、データベースでエラーが表示され、テーブルは保存できません。

一意のインデックスを作成または変更するとき、重複キーを無視するオプションを設定できます。このオプションを [はい] に設定して、複数行に影響するデータを INSERT ステートメントによって追加して重複キーを作成しようとすると、重複を含む行は追加されません。[いいえ] に設定すると、この挿入操作全体が失敗となり、データはすべてロールバックされます。

一意のインデックスを作成するには

  1. オブジェクト エクスプローラでテーブルを右クリックし、[デザイン] をクリックします。

    テーブル デザイナにテーブルが表示されます。

  2. [テーブル デザイナ] メニューの [インデックス/キー] をクリックします。

  3. [追加] をクリックします。[選択された主/一意キーまたはインデックス] ボックスに、システムが割り当てた新しいインデックスの名前が表示されます。

  4. グリッドで、[型] をクリックします。

  5. プロパティ右のドロップダウン リストの [インデックス] をクリックします。

  6. [列] からインデックスを付ける列を選択します。16 列まで選択できます。ただし、最適なパフォーマンスを得るには、1 つのインデックスにつき 1 列または 2 列に抑えます。選択した各列の値の並べ方を昇順または降順のどちらかに指定できます。

  7. グリッドで、[UNIQUE] をクリックします。

  8. プロパティの右のドロップダウン リストで [はい] をクリックします。

  9. INSERT ステートメントによって一意のインデックスに重複キーを作成するデータを無視するには、[重複するキーを無視する] をクリックして [はい] をクリックします。

テーブルやダイアグラムを保存すると、データベースにインデックスが作成されます。

注意

1 つの列の複数行に NULL がある場合は、その列には一意のインデックスを作成できません。同様に、複数の列の複数行に NULL がある場合は、その列の組み合わせに一意のインデックスを作成することもできません。インデックスを作成する場合、これらの NULL は重複した値として扱われます。