設定索引選項

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

本主題內容

  • 開始之前:

    限制事項

    安全性

  • 使用下列方法修改索引的屬性:

    SQL Server Management Studio

    Transact-SQL

開始之前

限制事項

  • 透過使用 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 權限。

搭配回到頁首連結使用的箭頭圖示[Top]

使用 SQL Server Management Studio

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

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

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

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

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

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

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

  7. 按一下 [關閉]

  8. [檔案] 功能表中,選取 [儲存 table_name]。

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

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

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

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

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

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

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

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

  8. 若要新增、移除或變更索引資料行的位置,請選取 [索引屬性 - index_name] 對話方塊中的 [一般] 頁面。 如需詳細資訊,請參閱<索引屬性 F1 說明

搭配回到頁首連結使用的箭頭圖示[Top]

使用 Transact-SQL

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

  1. [物件總管] 中,連接到 Database Engine 的執行個體。

  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. [物件總管] 中,連接到 Database Engine 的執行個體。

  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)>。

搭配回到頁首連結使用的箭頭圖示[Top]