¿Qué significa el código HRESULT 0xC800057A (hrIndexHasPrimary)?

 
Anterior Siguiente
hrIndexCantBuild hrIndexDuplicate

hrIndexHasPrimary

hrIndexHasPrimary: qué cambia este hresult

En el flujo legacy ESE/Directory Service, hrIndexHasPrimary describe que la tabla ya tiene el índice primary requerido y la operación intenta definir otro.

El valor publicado es 0xC800057A; la condición JET correspondiente es JET_errIndexHasPrimary. No es equivalente a hrIndexHasClustered: ese valor indica que la tabla ya posee un índice clustered y no admite un segundo en ese contexto. También se distingue de hrIndexInUse, donde el índice mantiene cursores o dependencias que impiden modificarlo o eliminarlo.

Aislamiento de la causa

Registra la primera llamada donde se cumple la condición concreta: la tabla ya tiene el índice primary requerido y la operación intenta definir otro.

  1. 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 JetCreateIndex, JetDeleteIndex, JetSetCurrentIndex, JetMakeKey, JetSeek, JetSetIndexRange.
  2. 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.

Códigos cercanos que conviene separar en logs: hrIndexHasClustered, hrIndexInUse, hrIndexDuplicate.

Referencias técnicas


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