CREATE INDEX ステートメント

既存のテーブルに新しいインデックスを作成します。

注: Microsoft Access 以外のデータベース の場合、Microsoft Access データベース エンジンでは、CREATE INDEX (ODBC リンク テーブルで擬似インデックスを作成する場合を除く) やデータ定義言語ステートメントを使用できません。代わりに DAO の Create メソッドを使用してください。詳細については、「解説」セクションを参照してください。

構文

CREATE [ UNIQUE ] INDEX index
ON table (field [ASC|DESC][, field [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

CREATE INDEX ステートメントには、次の指定項目があります。

引数

説明

index

作成されるインデックスの名前です。

table

インデックスを含む既存のテーブルの名前です。

field

インデックスを設定されるフィールドの名前です。単一フィールドのインデックスを作成するには、テーブル名に続くかっこ内にフィールド名を一覧します。複数フィールドのインデックスを作成するには、インデックスに含める各フィールドの名前を一覧します。降順のインデックスを作成するには、DESC 予約語を使用します。それ以外の場合は、インデックスは昇順であると見なされます。


解説

異なるレコードのインデックス付きフィールドで値の重複を禁止するには、UNIQUE 予約語を使用します。

オプションの WITH 句では、データ入力規則を強制できます。次の操作を行うことができます。

  • DISALLOW NULL オプションを使用して、新しいレコードのインデックス付きフィールドの Null エントリを禁止します。

  • IGNORE NULL オプションを使用して、インデックス付きフィールドに Null 値を持つレコードがインデックスに含まれないようにします。

  • PRIMARY 予約語を使用して、インデックス付きフィールドを主キーとして指定します。これはキーが固有であることを暗黙に示しているため、UNIQUE 予約語を省略することができます。

CREATE INDEX を使用して、まだインデックスのない Microsoft® SQL Server™ など、ODBC データ ソースのリンク テーブルで擬似インデックスを作成できます。擬似インデックスを作成するために、リモート サーバーへのアクセス許可は必要ありません。また、リモート データベースは認識されず、擬似インデックスの影響を受けません。リンク テーブルとネイティブ テーブルの両方に同じ構文を使用します。通常、読み取り専用になるテーブルに擬似インデックスを作成すると、特に便利な場合があります。

また、ALTER TABLE ステートメントを使用して、単一フィールドまたは複数フィールドのインデックスをテーブルに追加したり、ALTER TABLE ステートメントまたは DROP ステートメントを使用して、ALTER TABLE や CREATE INDEX で作成されたインデックスを削除したりすることもできます。

注: 主キーが既にあるテーブルに新しいインデックスを作成する場合、PRIMARY 予約語を使用しないでください。使用すると、エラーが発生します。



Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×