Error 2509

Severity

16

Message text

Versions earlier than 15.0:

Table Corrupt: The row number and offset of each row in the page should have a matching entry in row number table; check this page (page#=%d row#=%d offset in row number table=%d)

Version 15.0 and later:

Table Corrupt: The row number and offset of each row in the page should have a matching entry in the row number table. Check page number %d, partition ID %d (row number %d, offset in row number table is %d)

NoteThis error can be caused by a hardware problem.

Explanation

The offsets for data or index rows are stored at the end of every page (in the row number table) and indicate where a certain row is located on that page.

Error 2509 occurs when the dbcc checkdb or dbcc checktable command detects that a row does not have an entry matching its offset (location) on the page in the row offset table. Attempts to delete the offending row will result in error 631 (see “Error 631”), while attempts to select the offending row may be successful.

This problem is usually a result of an Adaptive Server internal error, but may also be caused by:

Action

First, rule out any of the above-mentioned causes for this error by referring to the appropriate sections in in the chapter “Other Useful Tasks” in the most recent version of the guide Troubleshooting and Disaster Recovery.

After eliminating more serious errors on the table, follow these steps to correct error 2509:

  1. Use the procedure “Finding an object name from a page number” in the chapter “Other Useful Tasks” in the most recent version of the Troubleshooting and Disaster Recovery guide to identify the table and index that correspond to the page number from the error message text.

    WARNING! The procedure referenced in step 1 uses the dbcc page command. Use the dbcc page command only as directed. This command is undocumented, nonstandard, and is provided “as is” without any warranty. Sybase Technical Support does not support this command for general use. Although the command syntax is provided for reference, use this command only in the specific diagnostic situations described, and with the specific syntax shown. Failure to do so could cause performance problems and database corruption.

  2. Depending on the type of object, select the most appropriate procedure:

  3. If the object with the error is a user table, use one of these methods to clear the 2509 error:

For more information about copying a table in a new table or file, refer to “Rescuing data from a corrupted table” in the chapter “Other Useful Tasks” in the most recent version of the guide Troubleshooting and Disaster Recovery for instructions.

Additional information

Refer to “create index” and “select” in the Reference Manual: Commands and in the Transact-SQL User's Guide.

Refer to bcp in the most recent version of the Adaptive Server Enterprise Utility Guide.

Versions in which this error is raised

All versions