2013-03-01 125 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