Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
インデックス、プライマリキー、または外部キーの名前を変更したり、インデックスのクラスター化された内容を変更したりします。
ALTER { INDEX index-name | [ INDEX ] FOREIGN KEY role-name | [ INDEX ] PRIMARY KEY } ON [ owner.]object-name { REBUILD | rename-clause | cluster-clause } }
object-name : table-name | materialized-view-name
rename-clause : RENAME { AS | TO } new-index-name
cluster-clause : CLUSTERED | NONCLUSTERED
rename-clause インデックス、プライマリキー、または外部キーの新しい名前を指定します。
外部キーまたはプライマリキーの基本となるインデックスの名前を変更しても、インデックスの対応する RI 制約の名前は変更されません。ただし、外部キーの役割名 (該当する場合) はインデックス名と同じであり、変更されます。必要に応じて ALTER TABLE 文を使用して、RI 制約名を変更します。
cluster-clause インデックスを CLUSTERED と NONCLUSTERED のどちらに変更するかを指定します。特定のテーブル上で 1 つのインデックスのみ、クラスター化できます。
REBUILD 句 この句は、インデックスを削除して再作成するのではなく、インデックスを再構築するときに使用します。
ALTER INDEX 文は、次の 2 つのタスクを実行します。
インデックス、プライマリキー、または外部キーの名前を変更するときに使用します。
インデックスタイプをノンクラスタードからクラスタードに、またはその逆に変更するときに使用します。
ALTER INDEX 文は、インデックスのクラスタ指定の変更には使用できますが、データの再編成はしません。また、特定のテーブルまたはマテリアライズドビュー上で 1 つのインデックスのみ、クラスター化できます。
ローカルテンポラリテーブル上では ALTER INDEX を使用してインデックスを変更できません。この文を使用してインデックスを削除しようとすると、"インデックスが見つかりません。" エラーになります。
文またはトランザクションのスナップショットを使用する、WITH HOLD 句を使用して開かれたカーソルがある場合、この文は実行できません。
テーブル所有者であるか、テーブルまたはマテリアライズドビューに対する REFERENCES パーミッションまたは DBA 権限が必要です。
オートコミット。Interactive SQL で [結果] ウィンドウ枠の [結果] タブをクリアします。現在接続しているすべてのカーソルを閉じます。ALTER INDEX REBUILD が指定されている場合は、チェックポイントが実行されます。
SQL/2008 ベンダー拡張。
次の文は、Products テーブルのインデックス IX_product_name の名前を ixProductName に変更します。
ALTER INDEX IX_product_name ON Products RENAME TO ixProductName;
次の文は、IX_product_name をクラスタードインデックスに変更します。
ALTER INDEX IX_product_name ON Products CLUSTERED;