當我們對一個表建立一個主鍵時,默認會給該主鍵列添加一條聚集索引,這是數據庫內部自動建立的,唯一性約束也會默認創建一個非聚集索引。
create table MyTable ( id int identity(1,1) primary key, name nvarchar(10) unique ) exec sp_helpindex MyTable

上面我們建立了一個主鍵id 和唯一性約束的name列,查看表可以看到這時產生了兩個索引
聚集索引是一個寶貴的資源,在一些表的中有時我們永遠不會用到主鍵來作為查詢條件,或者作為其他表的外鍵,這時主鍵的聚集索引
就顯得大才小用了,我們希望將聚集索引建立在其他真正需要的字段,不過當我們執行刪除操作時會報以下錯誤
消息 3723,級別 16,狀態 4,第 1 行
不允許對索引 'MyTable.PK__MyTable__3213E83F145C0A3F' 顯式地使用 DROP INDEX。該索引正用於 PRIMARY KEY 約束的強制執行
不過我們可以先刪除主鍵約束,這樣聚集所以就自動刪除了
alter table MyTable drop constraint PK__MyTable__3213E83F145C0A3F
我們再看下聚集索引已經不存在了

當然唯一約束所引起的索引也可以同樣的方式操作,先刪除唯一約束
