Что означает код HRESULT 0xC8000522 (hrObjectDuplicate)?

 
Предыдущий Следующий
hrIllegalOperation hrInvalidObject

hrObjectDuplicate

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

hrObjectDuplicate (0xC8000522) — имя таблицы или объекта уже используется.

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

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

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

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

  • Schema creation столкнулась с уже существующим object name в том же namespace.
  • Сравните existing definition с желаемой schema и сделайте migration идемпотентной, если объект уже соответствует нужному состоянию.
  • Перечислите tables, indexes и другие object metadata с точно тем же normalized name.
  • `hrInvalidTableId` относится к stale/closed `JET_TABLEID` и не является причиной duplicate schema name.

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


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