How to Identify and Fix a Corrupted Table

NoteThis task should only be used to correct specific errors as directed in Chapter 3, “Error Message Writeups”.

  1. Use the procedure in “How to Find an Object Name from a Page Number” to identify which table and/or index correspond to the page number in the error message text.

  2. If the object with the error is not a system table (a system table's object ID is less than 100), continue with step 3.

    If the object with the error is a system table and the index ID is not 0, refer to “How to Fix a Corrupted Index on System Tables” for instructions on how to repair the system table index.

    If the index ID is 0, contact Sybase Technical Support. They may be able to help you repair the corruption but it may be necessary to restore from clean backups.

  3. For user tables, if the index ID is 0 or 255, continue with step 4.

    If the index ID is not 0 or 255, first run dbcc checktable to verify that the data is good. Next, translate the index ID into an index name:

    1> use database_name 
    2> go
    

    1> select name from sysindexes 
    2> where id = object_ID and indid = index_ID
    3> go
    

    To ensure that the information needed to re-create the index is available, run sp_helpindex on the index before dropping it.

    Drop the index.

    Re-create the index. This clears the corruption in most cases.

    Run dbcc checktable on the table to verify that the corruption is gone.

  4. If the index ID is 0 or 255, do one of the following: