修改索引

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

重要说明重要提示

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

本主题内容

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

    SQL Server Management Studio

    Transact-SQL

使用 SQL Server Management Studio

修改索引

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

  2. 展开**“数据库”,展开该表所属的数据库,再展开“表”**。

  3. 展开该索引所属的表,再展开**“索引”**。

  4. 右键单击要修改的索引,然后单击**“属性”**。

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

修改索引列

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

用于“返回首页”链接的箭头图标[Top]

使用 Transact-SQL

修改索引

  1. 连接到数据库引擎。

  2. 在标准菜单栏上,单击**“新建查询”**。

  3. 将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。 此示例使用 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
    

修改索引列

  • 若要添加、删除或更改索引列的位置,您必须删除并重新创建该索引。

请参阅

参考

CREATE INDEX (Transact-SQL)

ALTER INDEX (Transact-SQL)

INDEXPROPERTY (Transact-SQL)

sys.indexes (Transact-SQL)

sys.index_columns (Transact-SQL)

概念

设置索引选项

重命名索引