CREATE INDEX 語法
CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]
INDEX index_name ON {table | view} (column [ASC | DESC] [,...n])
[WITH
[PAD_INDEX]
[ [, ] FILLFACTOR = fillfactor]
[ [, ] IGNORE_DUP_KEY]
[ [, ] DROP_EXISTING]
[ [, ] STATISTICS_NORECOMPUTE]
[ [, ] SORT_IN_TEMPDB]
]
[ON filegroup]
關鍵參數說明
- UNIQUE:建立唯一索引,鍵值不重複;列不允許 NULL。
- CLUSTERED / NONCLUSTERED:指定叢集或非叢集索引,預設為非叢集。
- index_name:索引名稱,表內唯一。
- table / view:目標表或視圖(視圖需用 SCHEMABINDING 定義)。
- ASC | DESC:排序方式,預設升序。
- column:索引欄位,最多 16 欄,長度總和不超過 900 位元組。
- PAD_INDEX:填充內部節點,需搭配 FILLFACTOR。
- FILLFACTOR:索引頁填滿百分比(1-100)。頻繁寫入表設較小(如 10),唯讀表可設 95+。預設 0(葉節點填滿,中間節點保留空間)。
- IGNORE_DUP_KEY:插入重複鍵值時,忽略該列並繼續,否則回滾整個 INSERT。
- DROP_EXISTING:刪除並重建叢集索引,避免非叢集索引重建兩次。
- STATISTICS_NORECOMPUTE:停用統計資料自動更新。
- ON filegroup:指定索引儲存檔案群組。