Read time 3 minutes

Summary : Microsoft SQL Server 2005’s table partitioning offers efficient database management, but errors from DBCC CHECKTABLE command can signal corruption. In complex scenarios involving table shifts and import, mismatched metadata can corrupt data. Repair options might fail, suggesting deletion if backups exist. Otherwise, third-party tools like SQL Server Recovery can salvage damaged SQL databases securely.

Microsoft SQL Server 2005 incorporates remarkable table partitioning features, offering a valuable tool to optimize the performance of sizable databases. These partitioned tables are not only flexible but also easy to maintain, making database management more efficient.

DBCC CHECKTABLE command is employed to ensure the consistency of these partitioned tables. When users run this command and encounter errors, it suggests potential corruption within the table. To recover and restore the complete data, users can rely on the latest database backup. If a situation arises where there is no backup or the existing backup is corrupted, scanning the damaged backup using SQL Server recovery and MDF repair software is recommended.

Let’s envision a scenario: you have two partitioned tables, Table A and Table B, both sharing identical columns and partitioned based on a common column. You proceed to create a clustered index on Table B and subsequently remove it, thereby shifting a partition from Table A to Table B. Following this, you import relevant data into Table B using the BULK INSERT command with the TABLOCK option. This sequence of actions can potentially lead to data corruption. When you execute the DBCC CHECKTABLE command to validate the consistency of such a table, you may encounter the following error message:

Msg 2570, Level 16, State 3, Line 2 Page (PageID), slot SlotID in object ID ObjectID, index ID IndexID, partition ID PartitionID, alloc unit ID UnitID (type “In-row data”). Column “ColumnName” value is out of range for data type “DataType”. Update column to a legal value.

Additionally, you may also receive error with ID 8984 or 8988 which are mentioned as follows:

  • Error message ID 8984
  • Table error: object ID ObjectID, index ID IndexID, partition ID PartitionID. A row should be on partition number PartitionNum1 but was found in partition number PartitionNum2. Possible extra or invalid keys for:
  • Error message ID 8988
  • Row (FileID:PageNumber:RowNumber) identified by (HEAP RID = (FileID:PageNumber:RowNumber)).

Reason Behind the Issue

The error messages mentioned above arise from a mismatch in metadata between the two tables. When the user removes the clustered index from Table B, its metadata undergoes a change. Subsequently, when partitions are switched between the tables, this mismatch in metadata information occurs, leading to data corruption errors.

Solution

Run DBCC CHECKTABLE command with repair options to address data corruption problems. If this fails to resolve the issue, it’s recommended to delete the corrupted table if a valid backup is available. However, in situations where no backup exists or the backup is also damaged, the most effective solution is to utilize third-party MS SQL repair applications to recover the original file.

SQL Server Recovery is renowned for its secure and reliable repair services, revitalizing damaged SQL databases. It effectively repairs MDF files from both MS SQL Server 2000 and 2005, recovering the data and saving it to new, functional MDF files.

Kernel for SQL Database Recovery