次の方法で共有


インデックスの変更

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 のインデックスを変更する方法について説明します。

重要

PRIMARY KEY 制約または UNIQUE 制約の結果として作成されたインデックスは、このメソッドを使用して変更することはできません。 代わりに、制約を変更する必要があります。

このトピックについて

SQL Server Management Studio の使用

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

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

  2. [ データベース] を展開し、テーブルが属するデータベースを展開して、[ テーブル] を展開します。

  3. インデックスが属するテーブルを展開し、[ インデックス] を展開します。

  4. 変更するインデックスを右クリックし、[ プロパティ] をクリックします。

  5. [ インデックスのプロパティ ] ダイアログ ボックスで、必要な変更を行います。 たとえば、インデックス キーから列を追加または削除したり、インデックス オプションの設定を変更することができます。

インデックス列を変更するには

  1. インデックス列の位置を追加、削除、または変更するには、[インデックスのプロパティ] ダイアログ ボックスから [全般] ページを選択します。

Transact-SQL の使用

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

  1. データベース エンジンに接続します。

  2. [標準] バーから、新しいクエリをクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 次の使用例は、DROP_EXISTING オプションを使用して、Production.WorkOrder テーブルのProductID列に既存のインデックスを削除して再作成します。 ここではオプション FILLFACTOR および PAD_INDEX も設定されています。

    USE AdventureWorks2012;
    GO
    CREATE NONCLUSTERED INDEX IX_WorkOrder_ProductID
        ON Production.WorkOrder(ProductID)
        WITH (FILLFACTOR = 80,
            PAD_INDEX = ON,
            DROP_EXISTING = ON);
    GO
    

    次の例では、ALTER INDEX を使用して、インデックス AK_SalesOrderHeader_SalesOrderNumberにいくつかのオプションを設定します。

    USE AdventureWorks2012;
    GO
    ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
        Sales.SalesOrderHeader
    SET (
        STATISTICS_NORECOMPUTE = ON,
        IGNORE_DUP_KEY = ON,
        ALLOW_PAGE_LOCKS = ON
        ) ;
    GO
    

インデックス列を変更するには

  1. インデックス列の位置を追加、削除、または変更するには、インデックスを削除して再作成する必要があります。

こちらもご覧ください

インデックス作成 (Transact-SQL)
ALTER INDEX (Transact-SQL)
INDEXPROPERTY (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
インデックス オプションの設定
インデックスの名前を変更する