| Предыдущий | Следующий |
| 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.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.