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