このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 のインデックスを変更する方法について説明します。
重要
PRIMARY KEY 制約または UNIQUE 制約の結果として作成されたインデックスは、このメソッドを使用して変更することはできません。 代わりに、制約を変更する必要があります。
このトピックについて
インデックスを変更するには、次を使用します。
SQL Server Management Studio の使用
インデックスを変更するには
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[ データベース] を展開し、テーブルが属するデータベースを展開して、[ テーブル] を展開します。
インデックスが属するテーブルを展開し、[ インデックス] を展開します。
変更するインデックスを右クリックし、[ プロパティ] をクリックします。
[ インデックスのプロパティ ] ダイアログ ボックスで、必要な変更を行います。 たとえば、インデックス キーから列を追加または削除したり、インデックス オプションの設定を変更することができます。
インデックス列を変更するには
- インデックス列の位置を追加、削除、または変更するには、[インデックスのプロパティ] ダイアログ ボックスから [全般] ページを選択します。
Transact-SQL の使用
インデックスを変更するには
データベース エンジンに接続します。
[標準] バーから、新しいクエリをクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 次の使用例は、
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
インデックス列を変更するには
- インデックス列の位置を追加、削除、または変更するには、インデックスを削除して再作成する必要があります。
こちらもご覧ください
インデックス作成 (Transact-SQL)
ALTER INDEX (Transact-SQL)
INDEXPROPERTY (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
インデックス オプションの設定
インデックスの名前を変更する