方法 : 一意のインデックスを作成する
更新 : 2007 年 11 月
SQL Server では、一意の列 (たとえば、employee id) に一意のインデックスを作成できます。また、各レコードを一意に識別できる列の組み合わせ (たとえば、author および title) に対しても一意のインデックスを作成できます。
たとえば、employee テーブル (主キーは emp_id) の社会保障番号 (ssn) 列に頻繁にクエリを実行する予定があり、社会保障番号を確実に一意にする場合は、ssn に一意のインデックスを作成します。ユーザーが複数の従業員に同じ社会保障番号を入力すると、データベースでエラーが表示され、テーブルは保存できません。一意のインデックスの詳細については、Microsoft Web サイトの「一意インデックスのデザイン ガイドライン」を参照してください。
一意のインデックスを作成または変更するとき、重複キーを無視するオプションを設定できます。このオプションを [はい] に設定すると、INSERT ステートメントで複数行に影響するデータを追加して重複キーを作成しようとすると、重複を含む行は追加されません。[いいえ] に設定すると、操作全体が失敗となり、データはすべてロールバックされます。
メモ : |
---|
使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに表示されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。 |
一意のインデックスを作成するには
[サーバー エクスプローラ] で、開くデータベース テーブルを選択します。
[データベース] メニューの [テーブル定義を開く] をクリックします。
テーブルが [テーブル デザイナ] 内で開かれます。
[テーブル デザイナ] メニューの [インデックス/キー] をクリックします。
[追加] をクリックします。[選択された 主/一意 キー またはインデックス] ボックスに、システムが割り当てた新しいインデックスの名前が表示されます。
グリッドで、[型] をクリックします。
プロパティ右のドロップダウン リストの [インデックス] をクリックします。
[列名] からインデックスを付ける列を選択します。16 列まで選択できます。ただし、最適なパフォーマンスを得るには、1 つのインデックスにつき 1 列または 2 列にとどめます。選択した各列の値の並べ方を昇順または降順のどちらかに指定できます。
グリッドで、[UNIQUE] をクリックします。
プロパティ右のドロップダウン リストの [はい] をクリックします。
INSERT ステートメントまたは UPDATE ステートメントによってインデックスに重複キーが作成される場合、新しいデータまたは更新データを無視するには、[重複するキーを無視] をクリックします。
テーブルやダイアグラムを保存すると、データベースにインデックスが作成されます。
メモ : |
---|
1 つの列の複数行に NULL がある場合は、その列には一意のインデックスを作成できません。同様に、複数の列の複数行に NULL がある場合は、その列の組み合わせに一意のインデックスを作成することもできません。インデックスを作成する場合、これらの NULL は重複した値として扱われます。 |
メモ : |
---|
すべてのデータベースが、同じ方法でインデックスを処理するわけではありません。詳細については、ご使用のデータベースのマニュアルを参照してください。 |