Chain linkage mismatch en SQL Server

Este problema es causado al tratar de eliminar una fila de la base de datos. SQL Server entrega el siguiente mensaje de error:

"Table error: Database ID X, object ID XXXXXXX, index ID 0. 
Chain linkage mismatch. (1:125126)->next = (1:125127), but (1:125127)->prev = (0:125126)."

donde X son números.

Causas

Esto es debido a que la operación de SHRINK no puede quitar una página de la tabla del SYSFILES1 en el fichero de datos primario de la base de datos.

Según Microsoft esto se debe a un bug encontrado en las todas las versiones de SQL Server, el cual fue parchado con el Service Pack 4Service Pack 4

Solución

La solución que entrega Microsoft es obtener la ultima versión de SQL Server, para esto debemos saber cual es nuestra versión y el idioma de SQL Server (ver Variables del Sistema SQL Server).

Luego debemos obtener el último Service Pack de SQL 2000 Serverúltimo Service Pack de SQL 2000 Server. Una vez que sepamos cual es debemos bajar la versión en el mismo idioma que tengamos instalado.

Nota MSDE

Si se tiene la versión gratuita de SQL Server (MSDE), la actualización no es tan sencilla, se recomienda leer la ayuda Service Pack 4 for Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)Service Pack 4 for Microsoft SQL Server 2000 Desktop Engine (MSDE 2000).