Symptômes
Prenons l’exemple du scénario suivant :
-
Une base de données est dotée d’un isolement de capture instantanée ou d’un niveau d’isolement de capture instantanée validée activée dans Microsoft SQL Server 2012 ou SQL Server 2014.
-
La base de données contient une table non vide contenant un index clusterisé à plusieurs colonnes. La clé de début de l’index groupé est définie sur non null.
-
Vous commencez une transaction et vous ajoutez une colonne dans la table. La valeur de cette colonne est mise à jour.
-
Vous pouvez modifier la clé de début de l’index groupé pour autoriser la valeur NULL.
-
Vous insérez des lignes avec des valeurs NULL pour la clé de début de l’index groupé, puis vous abandonnez la transaction.
Dans ce scénario, la restauration entraîne le passage de la base de données suspecte et « réparable » uniquement avec la commande DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS . En outre, le message d’erreur suivant peut s’afficher :
MSG 3316, niveau 21, état 2, ligne 135 lors de l’annulation d’une opération enregistrée dans la base de données « %. * ls », une erreur s’est produite dans l’ID enregistrement du journal% S_LSN. Ligne introuvable. Restauration de la base de données à partir d’une sauvegarde complète ou réparation de la base de données.
Résolution
Informations sur le Service Pack pour SQL Server 2014
Pour résoudre ce problème, procurez-vous le Service Pack 1 pour SQL Server 2014.
Pour plus d’informations sur SQL Server 2014 Service Pack 1 (SP1), voir bogues résolus dans SQL server 2014 Service Pack 1.
Informations sur le Service Pack pour SQL Server 2012
Pour résoudre ce problème, procurez-vous le dernier Service Pack pour Microsoft SQL Server 2012. Pour plus d’informations, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2755533 Obtention du dernier Service Pack pour SQL Server 2012
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».