¿Qué significa el código HRESULT 0xC8000580 (hrIndexHasClustered)?

 
Anterior Siguiente
hrIndexInvalidDef hrTooManyOpenIndexes

hrIndexHasClustered

Contexto del código: hrIndexHasClustered

hrIndexHasClustered indica que la tabla ya posee un índice clustered y no admite un segundo en ese contexto. El valor publicado es 0xC8000580; la condición JET correspondiente es JET_errIndexHasClustered.

No es equivalente a hrIndexHasPrimary: ese valor indica que la tabla ya tiene el índice primary requerido y la operación intenta definir otro. También se distingue de hrIndexDuplicate, donde la creación de índice reutiliza un nombre ya existente en la tabla.

Validación antes del retry

  • Registra la primera llamada donde se cumple la condición concreta: la tabla ya posee un índice clustered y no admite un segundo en ese contexto.
  • Conserva el contexto de definición de índice, segmentos de key y posición de búsqueda; para esta página las APIs/estructuras observadas en la referencia incluyen JetMakeKey, JetCreateIndex, JetDeleteIndex, JetSetCurrentIndex, JetSeek, JetSetIndexRange.
  • Antes del retry, corrige la definición o la posición del cursor con una migración/transacción controlada, sin alterar schema a ciegas.

La aceptación de la corrección consiste en repetir la misma API con el mismo tipo de objeto y comprobar que hrIndexHasClustered ya no aparece, sin perder el estado válido del cursor, archivo o backup.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.