設定索引選項
本主題描述如何使用 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
在資料表設計工具中修改索引的屬性
在 [物件總管] 中,按一下加號展開資料庫,此資料庫包含您要修改索引屬性的資料表。
按一下加號展開 [資料表] 資料夾。
以滑鼠右鍵按一下要修改索引屬性的資料表,然後選取 [設計]。
在 [資料表設計工具] 功能表上,按一下 [索引/索引鍵]。
選取您要修改的索引。 其屬性會在主要方格中顯示。
變更任何和所有屬性的設定,以自訂索引。
按一下 [關閉] 。
在 [檔案] 功能表上,選取 [儲存 table_name]。
在物件總管中修改索引的屬性
在 [物件總管] 中,按一下加號展開資料庫,此資料庫包含您要修改索引屬性的資料表。
按一下加號展開 [資料表] 資料夾。
按一下加號展開要修改索引屬性的資料表。
按一下加號展開 [索引] 資料夾。
以滑鼠右鍵按一下要修改其屬性的索引,然後選取 [屬性]。
在 [選取頁面] 底下,選取 [選項] 。
變更任何和所有屬性的設定,以自訂索引。
若要新增、移除或變更索引數據行的位置,請從 [索引屬性 - index_name] 對話框中選取 [一般] 頁面。 如需相關資訊,請參閱 Index Properties F1 Help
使用 TRANSACT-SQL
查看資料表中所有索引的屬性
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。
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
設定索引的屬性
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,按一下 [新增查詢] 。
將下列範例複製並貼入查詢視窗中,然後按一下 [執行] 。
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)。