Что означает код HRESULT 0xC800057D (hrIndexMustStay)?

 
Предыдущий Следующий
hrIndexNotFound hrIndexInvalidDef

hrIndexMustStay

Что означает hrIndexMustStay

hrIndexMustStay (0xC800057D) — кластеризованный индекс удалить нельзя.

Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errIndexMustStay.

Что проверить

  • Зафиксируйте текущий индекс, его сегменты и флаги, а также фактически построенный ключ. Ошибка определения индекса отличается от ошибки позиции курсора или конфликтующего ключа.
  • После изменения индексируемых столбцов заново проверьте позицию курсора; для unique/primary индекса отдельно исследуйте ключ конфликтующей записи.

Практический смысл и диагностика

  • Запрошенное удаление затрагивает index, который обязателен для layout таблицы, часто clustered index.
  • Если layout нужно изменить, перестройте таблицу с требуемой схемой вместо удаления mandatory index in place.
  • Контекст может включать `JetCreateIndex`, `JetDeleteIndex`, `JetSetCurrentIndex`, `JetMakeKey`, `JetSeek` и `JetSetIndexRange`.
  • `hrIndexInvalidDef` означает недопустимое definition индекса, а не запрет удаления уже существующего обязательного index.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.