Directrices para habilitar índices y restricciones

Cuando se deshabilita un índice, sigue deshabilitado hasta que se vuelve a generar o se quita. Puede habilitar un índice deshabilitado si lo vuelve a generar con uno de los métodos siguientes:

  • Instrucción ALTER INDEX con la cláusula REBUILD

  • CREATE INDEX con la cláusula DROP_EXISTING

  • DBCC DBREINDEX

Si utiliza una de estas instrucciones, el índice se vuelve a generar y su estado se establece como habilitado.

[!NOTA]

No es posible volver a generar un índice agrupado deshabilitado si la opción ONLINE está establecida en ON.

Después de volver a generar el índice, deben volver a habilitarse manualmente las restricciones deshabilitadas debido a la deshabilitación del índice. Las restricciones PRIMARY KEY y UNIQUE se habilitan cuando se regenera el índice asociado. Este índice debe volver a generarse (habilitarse) para poder habilitar las restricciones FOREIGN KEY que hacen referencia a la restricción PRIMARY KEY o UNIQUE. Las restricciones FOREIGN KEY se habilitan con la instrucción ALTER TABLE CHECK CONSTRAINT.

Cómo afecta un índice agrupado deshabilitado a los índices no agrupados

Cuando se vuelve a generar o se quita un índice agrupado deshabilitado, el efecto en los índices no agrupados depende del estado, deshabilitado o habilitado, de ambos tipos de índice. La siguiente tabla resume los efectos.

Si el índice agrupado está deshabilitado o habilitado y el índice no agrupado está deshabilitado, la acción del índice agrupado tiene los siguientes resultados en el índice no agrupado deshabilitado.

Si la acción del índice agrupado es

El índice no agrupado deshabilitado

ALTER INDEX REBUILD.

Sigue deshabilitado.

ALTER INDEX ALL REBUILD.

Se vuelve a generar y se habilita.

DROP INDEX.

Sigue deshabilitado.

CREATE INDEX WITH DROP_EXISTING.

Sigue deshabilitado.

Las acciones permitidas en índices no agrupados asociados con un índice agrupado dependen del estado, deshabilitado o habilitado, de ambos tipos de índice. La tabla siguiente resume las acciones permitidas en índices no agrupados.

Si la acción del índice no agrupado es

Y los índices agrupado y no agrupado están deshabilitados.

O bien el índice agrupado está habilitado y el índice no agrupado está deshabilitado o habilitado.

ALTER INDEX REBUILD.

Se produce un error en la acción.

La acción se realiza correctamente.

DROP INDEX.

La acción se realiza correctamente.

La acción se realiza correctamente.

CREATE INDEX WITH DROP_EXISTING.

Se produce un error en la acción.

La acción se realiza correctamente.