設定索引選項

本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL 修改 SQL Server 2014 中索引的屬性。

本主題內容

開始之前

限制事項

  • 下列選項會使用 ALTER INDEX 語句中的 SET 子句立即套用至索引:ALLOW_PAGE_LOCKS、ALLOW_ROW_LOCKS、IGNORE_DUP_KEY和STATISTICS_NORECOMPUTE。

  • 當您使用 ALTER INDEX REBUILD 或 CREATE INDEX WITH DROP_EXISTING 重建索引時,可以設定下列選項:PAD_INDEX、FILLFACTOR、SORT_IN_TEMPDB、IGNORE_DUP_KEY、STATISTICS_NORECOMPUTE、ONLINE、ALLOW_ROW_LOCKS、ALLOW_PAGE_LOCKS、MAXDOP 和 DROP_EXISTING (僅限 CREATE INDEX)。

安全性

權限

需要資料表或檢視表的 ALTER 權限。

使用 SQL Server Management Studio

在資料表設計工具中修改索引的屬性

  1. 在 [物件總管] 中,按一下加號展開資料庫,此資料庫包含您要修改索引屬性的資料表。

  2. 按一下加號展開 [資料表] 資料夾。

  3. 以滑鼠右鍵按一下要修改索引屬性的資料表,然後選取 [設計]。

  4. 在 [資料表設計工具] 功能表上,按一下 [索引/索引鍵]。

  5. 選取您要修改的索引。 其屬性會在主要方格中顯示。

  6. 變更任何和所有屬性的設定,以自訂索引。

  7. 按一下 [關閉] 。

  8. 在 [檔案] 功能表上,選取 [儲存 table_name]

在物件總管中修改索引的屬性

  1. 在 [物件總管] 中,按一下加號展開資料庫,此資料庫包含您要修改索引屬性的資料表。

  2. 按一下加號展開 [資料表] 資料夾。

  3. 按一下加號展開要修改索引屬性的資料表。

  4. 按一下加號展開 [索引] 資料夾。

  5. 以滑鼠右鍵按一下要修改其屬性的索引,然後選取 [屬性]

  6. [選取頁面] 底下,選取 [選項]

  7. 變更任何和所有屬性的設定,以自訂索引。

  8. 若要新增、移除或變更索引數據行的位置,請從 [索引屬性 - index_name] 對話框中選取 [一般] 頁面。 如需相關資訊,請參閱 Index Properties F1 Help

使用 TRANSACT-SQL

查看資料表中所有索引的屬性

  1. 在物件總管中,連線到資料庫引擎的執行個體。

  2. 在標準列上,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行]

    USE AdventureWorks2012;  
    GO  
    SELECT i.name AS index_name,   
        i.type_desc,   
        i.is_unique,   
        ds.type_desc AS filegroup_or_partition_scheme,   
        ds.name AS filegroup_or_partition_scheme_name,   
        i.ignore_dup_key,   
        i.is_primary_key,   
        i.is_unique_constraint,   
        i.fill_factor,   
        i.is_padded,   
        i.is_disabled,   
        i.allow_row_locks,   
        i.allow_page_locks,   
        i.has_filter,   
        i.filter_definition  
    FROM sys.indexes AS i  
       INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id  
    WHERE is_hypothetical = 0 AND i.index_id <> 0   
       AND i.object_id = OBJECT_ID('HumanResources.Employee');   
    GO  
    
    

設定索引的屬性

  1. 在物件總管中,連線到資料庫引擎的執行個體。

  2. 在標準列上,按一下 [新增查詢]

  3. 將下列範例複製並貼入查詢視窗中,然後按一下 [執行]

    USE AdventureWorks2012;
    GO
    ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
        Sales.SalesOrderHeader
    SET (
        STATISTICS_NORECOMPUTE = ON,
        IGNORE_DUP_KEY = ON,
        ALLOW_PAGE_LOCKS = ON
        ) ;
    GO
    
    USE AdventureWorks2012;
    GO
    ALTER INDEX ALL ON Production.Product
    REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
                  STATISTICS_NORECOMPUTE = ON);
    GO
    

如需詳細資訊,請參閱 ALTER INDEX (Transact-SQL)