启用索引和约束指南
索引被禁用后一直保持禁用状态,直到它重新生成或删除。您可以使用下列方法之一,重新生成禁用的索引来启用它:
- 带 REBUILD 子句的 ALTER INDEX 语句
- 带 DROP_EXISTING 子句的 CREATE INDEX
- DBCC DBREINDEX
您可以使用下列语句之一,重新生成索引,并将其状态设为启用。
注意: |
---|
当 ONLINE 选项设置为 ON 时,不能重新生成禁用的聚集索引。 |
在索引重新生成之后,任何因禁用索引而被禁用的约束必须手动将其启用。PRIMARY KEY 和 UNIQUE 约束可通过重新生成相关联的索引来启用。您必须重新生成(启用)索引才能启用引用 PRIMARY KEY 或 UNIQUE 约束的 FOREIGN KEY 约束。FOREIGN KEY 约束可使用 ALTER TABLE CHECK CONSTRAINT 语句来启用。
禁用的聚集索引如何影响非聚集索引
重新生成或删除禁用的聚集索引对非聚集索引的影响,取决于这两种索引类型的状态是禁用的还是启用的。下表概括了这些影响。
当禁用或启用聚集索引,禁用非聚集索引时,对聚集索引操作会对禁用的非聚集索引有如下影响。
当聚集索引操作为 | 禁用的非聚集索引 |
---|---|
ALTER INDEX REBUILD。 |
保持禁用状态。 |
ALTER INDEX ALL REBUILD。 |
重新生成或启用。 |
DROP INDEX。 |
保持禁用状态。 |
CREATE INDEX WITH DROP_EXISTING。 |
保持禁用状态。 |
与聚集索引相关联的非聚集索引允许的操作,取决于这两种索引类型的状态是禁用还是启用。下表概括了非聚集索引允许的操作。
当非聚集索引操作为 | 且聚集和非聚集索引被禁用。 | 或聚集索引被启用而非聚集索引被禁用或启用。 |
---|---|---|
ALTER INDEX REBUILD。 |
操作失败。 |
操作成功。 |
DROP INDEX。 |
操作成功。 |
操作成功。 |
CREATE INDEX WITH DROP_EXISTING。 |
操作失败。 |
操作成功。 |
请参阅
概念
其他资源
ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)