1

任何人都知道当我从表中删除一列时索引会发生什么?

SQL Server 是否重建该索引?如果是聚集索引呢?

我有一个 1.5 亿行的表,我需要删除一列。如果它作为聚集索引排序,这会重建表吗?还是索引只知道它的一列被删除了?

4

2 回答 2

1

这取决于列。如果该列用作任何索引(聚集或非聚集)中的索引列,则不能删除它,除非先删除受影响的索引。

如果该列不用作索引列,则可以将其删除,并且不会重建聚集索引。但是,在重建聚集索引之前,表的已用空间也不会改变。

编辑:参考:http: //msdn.microsoft.com/en-us/library/ms190273.aspx

于 2012-09-29T15:00:32.987 回答
0

这不是索引可以“理解”的东西。只有在查询中使用了索引中使用的所有列时,查询引擎才能使用复合索引。这是一个多级索引,带有索引索引(如果有意义的话)。索引定义中的列顺序构成了所构建的物理索引。如果您删除该列,您将不得不删除此索引并构建一个新索引。

于 2012-09-29T00:32:34.667 回答