Что означает код HRESULT 0xC8000517 (hrTableDuplicate)?

 
Предыдущий Следующий
hrTableLocked hrTableInUse

hrTableDuplicate

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

hrTableDuplicate (0xC8000517) — таблица уже существует.

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

Зафиксируйте базу, таблицу или сессию ESE и первый API Jet/ESENT, который вернул hrTableDuplicate.

  • Проверьте состояние базы и журналов ESE, свободные ресурсы процесса и состояние активной транзакции именно в момент отказа.
  • Если ошибка возникла при восстановлении или работе с журналами, сопоставьте поколения журналов, контрольную точку и выбранный набор файлов; не подменяйте восстановление простым повтором операции.
  • Проверьте уже существующий объект и его параметры до создания или регистрации нового. Для hrTableDuplicate обычно безопаснее сделать операцию идемпотентной либо явно обновить существующий объект, чем создавать дубликат.

Исходная формулировка

  • table creation reused a name already present in the database.
  • Typical API surface — JetOpenTable, JetCreateTableColumnIndex, JetDeleteTable, and schema enumeration APIs
  • hrTableInUse — open cursors or operations prevent an exclusive table change
  • The key comparison for this result is this: hrObjectDuplicate can include other object classes; this code identifies a table collision.
  • First corrective direction — make schema migrations idempotent by checking the existing table definition before creation

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


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