インデックスの名前変更

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

このトピックでは、SQL Server で、SQL Server Management Studio または Transact-SQL を使用して、インデックスの名前を変更する方法について説明します。 インデックスの名前を変更すると、現在のインデックス名が指定した新しい名前に置き換えられます。 指定する名前は、テーブルやビュー内で一意になる必要があります。 たとえば、2 つのテーブルにそれぞれ XPK_1という名前のインデックスを含めることはできますが、同じテーブルに XPK_1という名前のインデックスを 2 つ含めることはできません。 無効になっている既存のインデックスと同じ名前のインデックスを作成することはできません。 インデックス名を変更しても、インデックスは再構築されません。

このトピックの内容

はじめに

制限事項と制約事項

テーブルに PRIMARY KEY 制約または UNIQUE 制約を作成すると、制約と同じ名前のインデックスが自動的に作成されます。 インデックス名はテーブル内で一意になる必要があるので、そのテーブルに既存の PRIMARY KEY 制約または UNIQUE 制約と同じ名前のインデックスを作成したり、同じ名前を付けることはできません。

セキュリティ

アクセス許可

インデックスに対する ALTER 権限が必要です。

SQL Server Management Studio を使用する

テーブル デザイナーを使用してインデックスの名前を変更するには

  1. オブジェクト エクスプローラーで、インデックスの名前を変更するテーブルが格納されているデータベースをプラス記号をクリックして展開します。

  2. プラス記号をクリックして [テーブル] フォルダーを展開します。

  3. インデックスの名前を変更するテーブルを右クリックし、 [デザイン]を選択します。

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

  5. [選択された主/一意キーまたはインデックス] ボックスで、名前の変更対象のインデックスを選択します。

  6. グリッド内の [名前] をクリックし、テキスト ボックスに新しい名前を入力します。

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

  8. [ファイル] メニューの テーブル名の保存]をクリックします。

オブジェクト エクスプローラーを使用してインデックスの名前を変更するには

  1. オブジェクト エクスプローラーで、インデックスの名前を変更するテーブルが格納されているデータベースをプラス記号をクリックして展開します。

  2. プラス記号をクリックして [テーブル] フォルダーを展開します。

  3. プラス記号をクリックして、インデックスの名前を変更するテーブルを展開します。

  4. プラス記号をクリックして [インデックス] フォルダーを展開します。

  5. 名前を変更するインデックスを右クリックし、 [名前の変更]をクリックします。

  6. 新しいインデックス名を入力して、Enter キーを押します。

Transact-SQL の使用

インデックスの名前を変更するには

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

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

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

    USE AdventureWorks2022;  
    GO  
    --Renames the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table to IX_VendorID.   
    
    EXEC sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';   
    GO  
    

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