SQLサーバーでインデックスを作成するステートメントは何ですか?
SQL Server では、次のような構文を使用してインデックスを作成します。
CREATE INDEX index_name
ON table_name (column1, column2, ...)
上掲の文法において、index_name は作成しようとするインデックスの名前、table_name はそのインデックスを作成しようとするテーブルの名前を表します。かっこ内の column1, column2, … はそのインデックスに含めるカラムの名前を表します。
なお、主キー以外の列にもUNIQUE制約を追加することでユニークインデックスを作成し、インデックス列の値がテーブル内で一意となることを保証できます。
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...)
インデックスの作成時に、INCLUDE キーワードを使用して非インデックス列のデータを含めたり、WHERE 句を使用してインデックスのフィルタ条件を定義したりなど、他のオプションをインデックスに指定することもできます。
さらに、DROP INDEXステートメントを使用してインデックスを削除することもできます。
DROP INDEX index_name
ON table_name
上記文中で、index_nameは削除するインデックスの名称、table_nameはインデックスを含むテーブルの名称です。
なお、インデックスの作成・削除時には、実施に十分な権限が必要になります。