适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 预览版中的 SQL 数据库
本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中修改索引。
Important
不能通过此方法修改作为 PRIMARY KEY 或 UNIQUE 约束的结果而创建的索引, 而必须修改约束。
本主题内容
- 若要修改索引,请使用: 
使用 SQL Server Management Studio
修改索引
- 在对象资源管理器中,连接到 SQL Server 数据库引擎 的实例,然后展开该实例。 
- 展开 “数据库”,展开该表所属的数据库,再展开 “表”。 
- 展开该索引所属的表,再展开 “索引”。 
- 右键单击要修改的索引,然后单击“属性”。 
- 在 “索引属性” 对话框中进行所需的更改。 例如,您可以从索引键中添加或删除列,或更改索引选项的设置。 
修改索引列
- 若要添加、删除或更改索引列的位置,请从 “索引属性” 对话框中选择 “常规” 页。
Using Transact-SQL
修改索引
下面的示例使用 ProductID 选项,删除 AdventureWorks 数据库中 Production.WorkOrder 表的 DROP_EXISTING 列上的现有索引并重新创建。 还设置了 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
    )
;
修改索引列
- 若要添加、删除或更改索引列的位置,您必须删除并重新创建该索引。
See Also
              创建索引(Transact-SQL)
              ALTER INDEX (Transact-SQL)
              INDEXPROPERTY (Transact-SQL)
              sys.indexes (Transact-SQL)
              sys.index_columns (Transact-SQL)
              设置索引选项
              Rename Indexes