| Previous | Next |
| hrInvalidBookmark | hrInvalidBufferSize |
hrColumnInUse
Diagnostic focus
hrColumnInUse means a schema change targets a column that an index or other active definition still depends on.
This is the legacy Directory Service backup/restore HRESULT form of JET_errColumnInUse (0xC8000416).
The key comparison is: hrColumnIndexed is the delete-specific variant; this result can appear in a broader schema operation. The first useful observation is to enumerate every index segment and conditional column referencing the target column. This evidence separates schema definition, row-size accounting, null semantics, multivalue selection, and stale column IDs.
The ESE objects in play
| Diagnostic layer | column schema, row-size accounting, tagged/multivalued storage, and column identifiers |
|---|---|
| Typical API surface | JetAddColumn, JetDeleteColumn, JetSetColumn, JetRetrieveColumn, and JET_COLUMNDEF |
| Code-specific condition | a schema change targets a column that an index or other active definition still depends on |
| First corrective direction | remove or rebuild dependent definitions inside the documented schema-change sequence |
Fixed, variable, tagged, and long-value columns consume row space differently. Column IDs are metadata scoped to a table and should be refreshed after schema changes.
Evidence that resolves the ambiguity
- Code-specific observation: enumerate every index segment and conditional column referencing the target column.
- the complete row-size contribution from fixed, variable, tagged, and long-value data; associate it with this result rather than with a later generic exception.
- JET_COLUMNDEF fields, flags, code page, maximum length, and column ID origin; associate it with this result rather than with a later generic exception.
- the encoded value length, null/empty state, and itag sequence.
Nearby results that mean something different
hrColumnDuplicate | column creation reused a name already defined in the table |
|---|---|
hrColumnIndexed | a column cannot be removed because one or more indexes reference it |
hrColumnDoesNotFit | the field update cannot fit in the current record layout and remaining row budget |
A disciplined correction path
- Freeze the failing request context and record
0xC8000416, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: enumerate every index segment and conditional column referencing the target column.
- Apply the targeted fix: remove or rebuild dependent definitions inside the documented schema-change sequence.
- Before retrying the operation, reconcile column metadata, row layout, and the exact stored value state.
Actions that can hide or worsen the problem
- Do not alter the column schema in place without a migration and rollback plan.
- Do not collapse null, zero-length data, missing value, and tagged-value deletion into one state.
Technical references
Looking for a different code? Search another status or error code.