Что означает код HRESULT 0xC8000580 (hrIndexHasClustered)?

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

hrIndexHasClustered

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

hrIndexHasClustered (0xC8000580) — кластеризованный индекс уже определён.

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

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

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

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

  • У таблицы уже есть clustered index, поэтому второй clustered layout определить нельзя.
  • `hrIndexHasPrimary` относится к primary-key designation; здесь решающим является именно clustered storage order.
  • Выберите один clustered layout либо перенесите rows в новую таблицу с заранее определённой схемой.
  • Перечислите index flags и установите, не создала ли existing clustered index более ранняя migration.

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


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