Monday, December 13, 2010

DBCC CHECKTABLE Displays 8966 and 8944 Error Messages

Records stored in a MS SQL Server table become inaccessible when it gets corrupted due to record header corruption, metadata structure damage, application malfunction, and concurrent modification. To surmount table corruption, MS SQL Server provides an inbuilt table repair command known as 'DBCC CHECKTABLE'. The command checks the logical and physical integrity of the corrupted table and the indexed view. While in most cases, the command is successful in repairing corrupted tables, there are a few instances where the command falls short in repairing the MS SQL Server table. In such situations, the command displays an error message, exhibiting the exact reason for its failure. The table remains corrupt after DBCC CHECKTABLE failure message. To overcome such table corruption, an ideal option is to restore the table from an updated backup. However, in the absence of or in case of deficient table backup, the user needs to use a powerful third-party MDF Repair utility.

To explain the above scenario in detail, consider a practical case where you encounter the below error message while attempting to repair your corrupt table using DBCC CHECKTABLE command:

Server: Msg 8966, Level 16, State 1, Line 1 Could not read and latch page (1:24) with latch type SH. sysindexes failed. Server: Msg 8944, Level 16, State 1, Line 1 Table error: Object ID 2, index ID 0, page (1:24), row 11. Test (!(hdr->r_tagA & (VERSION_MASK | RECTAG_RESV_A | RECTAG_RESV_B))) failed. Values are 95 and 193. Server: Msg 8944, Level 16, State 1, Line 1 Table error: Object ID 2, index ID 0, page (1:24), row 11. Test (GetRecType (pRec) >= 0 && GetRecType (pRec) <= LAST_REC_TYPE) failed. Values are 14 and 12. CHECKTABLE found 0 allocation errors and 2 consistency errors in table 'sysindexes' (object ID 2). DBCC execution completed. If DBCC printed error messages, contact your system administrator.”

The error message appears when the repair command is unable to repair the database table.


Severe corruption in table due to record header damage.


To repair your table when DBCC CHECKDB fails, you will need to opt for a commercial MDF File Repairapplication. Such MDF Recovery tools use advanced repair solutions to repair the table and restore it at user-specified location.

1 comment:

  1. MS SQL server provides you with an inbuilt tool in the form of DBCC CHECKTABLE command but sometimes there comes a situation when it fails to repair and displays error messages like SQL Error 8966. Get Solution to resolve error:-