2013-03-01 128 views
-1

有沒有辦法可以禁用聚集索引?正如我在下面的MSDN中所看到的那樣,「如果未指定CLUSTERED,則會創建一個非聚集索引。」在SQL中禁用聚簇索引的方法和哪個列會創建默認非聚簇索引?

價:http://msdn.microsoft.com/en-IN/library/ms188783.aspx

因爲我讀,默認情況下聚集索引在主鍵列被創建。即使通過某種方式禁用了它,根據上面的MSDN默認情況下會創建一個非聚集索引?如果是這樣的列?

我是新來的SQL請幫忙。

+3

我覺得上面的幫助的意思是,如果你不寫在默認情況下,您的CREATE INDEX DDL的話就會產生非聚集索引CLUSTERED關鍵字。 – JackLock 2013-03-01 21:32:04

+0

@傑克鎖:這是可能的,謝謝:) – Learner 2013-03-01 21:35:33

+1

沒問題。我知道,BOL有時可能有點混亂。 – JackLock 2013-03-01 21:37:42

回答

1

您可以禁用聚簇索引。

ALTER INDEX IX_Index ON dbo.Table 
DISABLE ; 

http://technet.microsoft.com/en-us/library/ms188388.aspx

+0

謝謝。所以如果我禁用它,根據MSDN一個非聚集索引將被創建? – Learner 2013-03-01 21:32:38

+3

我認爲你誤解了這一點。就像@JackLock上面所說的,如果你創建了一個沒有CLUSTERED語句的索引,那麼這個索引是非聚集的。 – 2013-03-01 21:34:32

+1

技術上正確但可能不是一個好主意。 CREATE TABLE T(X INT CONSTRAINT IX_Index PRIMARY KEY); ALTER INDEX IX_Index ON T DISABLE; SELECT * FROM T'產生查詢處理器無法產生計劃,因爲表或視圖'T'上的索引'IX_Index'是殘疾人士。' – 2013-03-01 21:55:12