适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中修改索引。

不能通过此方法修改作为 PRIMARY KEY 或 UNIQUE 约束的结果而创建的索引, 而必须修改约束。

本主题内容

  • 若要修改索引,请使用:

    SQL Server Management Studio

    Transact-SQL

    使用 SQL Server Management Studio

  • 在对象资源管理器中,连接到 SQL Server 数据库引擎 的实例,然后展开该实例。

  • 展开 “数据库” ,展开该表所属的数据库,再展开 “表”

  • 展开该索引所属的表,再展开 “索引”

  • 右键单击要修改的索引,然后单击“属性”

  • “索引属性” 对话框中进行所需的更改。 例如,您可以从索引键中添加或删除列,或更改索引选项的设置。

    修改索引列

  • 若要添加、删除或更改索引列的位置,请从 “索引属性” 对话框中选择 “常规” 页。
  • “使用 Transact-SQL”

    下面的示例使用 DROP_EXISTING 选项,删除 AdventureWorks 数据库中 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)
    设置索引选项
    重命名索引