インデックスの変更
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance
このトピックでは、SQL Server で、SQL Server Management Studio または Transact-SQL を使用して、インデックスを変更する方法について説明します。
重要
PRIMARY KEY 制約または UNIQUE 制約の結果として作成されたインデックスは、この方法を使用して変更することはできません。 このような場合には、制約を変更する必要があります。
このトピックの内容
インデックスを変更するために使用するもの:
SQL Server Management Studio を使用する
インデックスを変更するには
オブジェクト エクスプローラーで、 SQL Server データベース エンジン のインスタンスに接続し、そのインスタンスを展開します。
[データベース]を展開し、テーブルが属するデータベースを展開して、 [テーブル]を展開します。
インデックスが属するテーブルを展開し、 [インデックス]を展開します。
変更するインデックスを右クリックし、 [プロパティ]をクリックします。
[インデックスのプロパティ] ダイアログ ボックスで、目的の変更を行います。 たとえば、インデックス キーの列の追加や削除を行うことができます。また、インデックス オプションの設定も変更できます。
インデックス列を変更するには
- インデックス列の位置を追加、削除、または変更するには、 [インデックスのプロパティ] ダイアログ ボックスの [全般] ページをクリックします。
Transact-SQL の使用
インデックスを変更するには
次の例では、AdventureWorks データベース内で、DROP_EXISTING
オプションを使って Production.WorkOrder
テーブルの ProductID
列にある既存のインデックスを削除して再作成します。 ここではオプション FILLFACTOR
および PAD_INDEX
も設定されています。
CREATE NONCLUSTERED INDEX IX_WorkOrder_ProductID
ON Production.WorkOrder(ProductID)
WITH (FILLFACTOR = 80,
PAD_INDEX = ON,
DROP_EXISTING = ON)
;
次の例では、ALTER INDEX を使用して、 AK_SalesOrderHeader_SalesOrderNumber
インデックスのいくつかのオプションを設定します。
ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
Sales.SalesOrderHeader
SET (
STATISTICS_NORECOMPUTE = ON,
IGNORE_DUP_KEY = ON,
ALLOW_PAGE_LOCKS = ON
)
;
インデックス列を変更するには
- インデックス列の位置を追加、削除、または変更するには、インデックスを削除してから再作成する必要があります。
参照
CREATE INDEX (Transact-SQL)
ALTER INDEX (Transact-SQL)
INDEXPROPERTY (Transact-SQL)
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
インデックス オプションの設定
インデックスの名前変更