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