Error 2541

Severity Level 16

Message Text

Table Corrupt: object id does not match between extent in allocation page and Sysindexes; check the following extent: alloc pg#=%ld extent#=%ld object id on extent=%ld (object name = %.*s) object id in Sysindexes=%ld (object name = %.*s)

Explanation

The DBCC CHECKALLOC statement detected a mismatch in the object ID between an allocation structure (extent) and the sysindexes system table.

Note Occasionally, DBCC CHECKALLOC reports this error when no real error condition exists. Run DBCC CHECKALLOC in single-user mode if you suspect the 2541 error message is incorrect.

Action

Follow these steps:

  1. Examine the index ID associated with the page number indicated by extent# in the message to determine whether the error occurred on table data or an index. To find the object ID and the index ID of the object that has the error, see "Associating a Page with an Object" in Chapter 24, "Additional Problem-solving Techniques."
  2. If the object ID is less than or equal to 100, the error is on a system table. Restore the database from a known clean backup.

    If the object ID is greater than 100, the error is on a user table.

    If the problem persists, contact your primary support provider. Have the output from the appropriate DBCC statements available for review.