DBCC CHECKALLOC is a general command which is used by database administrators to check the consistency of disk space. This command comprehensively finds the used and allocation of all database pages in your specified database. However, if examining a pages, the command shows an error message, then it means that your database pages have been damaged or corrupted. Furthermore, the records stored in the database become inaccessible after the error message appears. The best way to access your data in such situation is by restoring the data from a clean backup. But if in case, your backup is not updated, then you will need to use SQL Database Recoverysoftware to repair your database.
Take a practical scenario, you encounter the below error message when you try to run DBCC CHECKALLOC command:
"Table error: Page %S_PGID is allocated to object ID %d, index ID %d, not to object ID %d, index ID %d found in page header."
After the above error message appears on your screen, the data (record) stored in the database becomes inaccessible.
The main cause for the occurrence of above error message is that DBCC CHECKALLOC command has found a mismatch in the Object ID between extents and sysindexes.
For resolving the above error message, you will have to follow the below mentioned steps:
1.Find the index ID which is connected with the page number highlighted in the error message to find error occurred on table data or on the index.
2. After that, restore the database after analyzing the below situations:
If the Value of Object ID in the error message contains less than or equal to hundred, that means system table is corrupted. In this situations, restore the database from an updated backup.
If the Value of Object ID in the error message is greater than 100, that means error is in user table. In this case restore the table only.
However, if the above procedure fail to resolve your problem and the above error message still persists, then you will need to use a third-party sql database repair software to repair your database.