Síntomas
Imagine la siguiente situación:
-
Tiene una base de datos que tiene habilitado el nivel de aislamiento de instantánea de Snapshot isocommit o Read conmitted en Microsoft SQL Server 2012 o SQL Server 2014.
-
La base de datos contiene una tabla no vacía que tiene un índice agrupado de varias columnas. La clave de relleno del índice agrupado se establece en not null.
-
Inicia una transacción y agrega una columna a la tabla. El valor de esta columna se actualiza.
-
La clave de interlineado del índice agrupado se modifica para permitir un valor nulo.
-
Inserte las filas con valores NULOs para la clave principal del índice agrupado y, a continuación, anule la transacción.
En este escenario, la reversión hace que la base de datos se sospeche y solo se "repareble" por el comando DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS . Además, es posible que aparezca el siguiente mensaje de error:
Msj 3316, nivel 21, estado 2, línea 135 durante la deshacer una operación registrada en la base de datos ' %1! ', se produjo un error en el identificador de la entrada de registro% S_LSN. No se encontró la fila. Restaure la base de datos a partir de una copia de seguridad completa o repare la base de datos.
Resolución
Información de Service Pack para SQL Server 2014
Para resolver este problema, obtenga el Service Pack 1 para SQL Server 2014.
Para obtener más información sobre el Service Pack 1 (SP1) de SQL Server 2014, consulte errores corregidos en el Service Pack 1 de SQL server 2014.
Información de Service Pack para SQL Server 2012
Para resolver este problema, obtenga el Service Pack más reciente para Microsoft SQL Server 2012. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2755533 Cómo obtener el Service Pack más reciente para SQL Server 2012
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".