インデックスの変更
このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2012 のインデックスを変更する方法について説明します。
重要 |
---|
PRIMARY KEY 制約または UNIQUE 制約の結果として作成されたインデックスは、この方法を使用して変更することはできません。 このような場合には、制約を変更する必要があります。 |
このトピックの内容
インデックスを変更するために使用するもの:
SQL Server Management Studio
Transact-SQL
SQL Server Management Studio の使用
インデックスを変更するには
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[データベース] を展開し、テーブルが属するデータベースを展開して、[テーブル] を展開します。
インデックスが属するテーブルを展開し、[インデックス] を展開します。
変更するインデックスを右クリックし、[プロパティ] をクリックします。
[インデックスのプロパティ] ダイアログ ボックスで、目的の変更を行います。 たとえば、インデックス キーの列の追加や削除を行うことができます。また、インデックス オプションの設定も変更できます。
インデックス列を変更するには
- インデックス列の位置を追加、削除、または変更するには、[インデックスのプロパティ] ダイアログ ボックスの [全般] ページをクリックします。
[Top]
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
インデックス列を変更するには
- インデックス列の位置を追加、削除、または変更するには、インデックスを削除してから再作成する必要があります。
関連項目
参照
sys.index_columns (Transact-SQL)