インデックスの削除

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

このトピックでは、SQL Server で、SQL Server Management Studio または Transact-SQL を使用して、インデックスを削除 (ドロップ) する方法について説明します。

このトピックの内容

はじめに

制限事項と制約事項

PRIMARY KEY 制約または UNIQUE 制約の結果として作成されたインデックスは、この方法を使用して削除することはできません。 このような場合には、制約を削除する必要があります。 制約および対応するインデックスを削除するには、Transact-SQL から、ALTER TABLE を DROP CONSTRAINT 句と共に使用します。 詳細については、「 Delete Primary Keys」を参照してください。

セキュリティ

アクセス許可

テーブルまたはビューに対する ALTER 権限が必要です。 この権限は、固定サーバー ロール sysadmin と、固定データベース ロール db_ddladmin および db_owner に既定で許可されています。

SQL Server Management Studio を使用する

オブジェクト エクスプローラーを使用してインデックスを削除するには

  1. オブジェクト エクスプローラーで、インデックスを削除するテーブルが格納されているデータベースを展開します。

  2. [テーブル] フォルダーを展開します。

  3. 削除するインデックスを含むテーブルを展開します。

  4. [インデックス] フォルダーを展開します。

  5. 削除するインデックスを右クリックして、 [削除]をクリックします。

  6. [オブジェクトの削除] ダイアログ ボックスで、 [削除されるオブジェクト] グリッドに目的のインデックスが表示されていることを確認し、 [OK]をクリックします。

テーブル デザイナーを使用してインデックスを削除するには

  1. オブジェクト エクスプローラーで、インデックスを削除するテーブルが格納されているデータベースを展開します。

  2. [テーブル] フォルダーを展開します。

  3. 削除するインデックスのあるテーブルを右クリックし、[デザイン] をクリックします。

  4. [テーブル デザイナー] メニューの [インデックス/キー]をクリックします。

  5. [インデックス/キー] ダイアログ ボックスで、削除するインデックスを選択します。

  6. [削除] をクリックします。

  7. 閉じるをクリックします。

  8. [ファイル] メニューの table_nameを保存]を選びます。

Transact-SQL の使用

インデックスを削除するには

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    USE AdventureWorks2022;  
    GO  
    -- delete the IX_ProductVendor_BusinessEntityID index  
    -- from the Purchasing.ProductVendor table  
    DROP INDEX IX_ProductVendor_BusinessEntityID   
        ON Purchasing.ProductVendor;  
    GO  
    

詳細については、「DROP INDEX (Transact-SQL)」を参照してください。