KB3174963 - CORRECTIF : perte de données lors de la modification du fonctionnement d’une colonne sur une grande table à mémoire optimisée dans SQL Server 2016

S’applique à
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptômes

Dans SQL Server 2016, sur une table à mémoire optimisée, la plupart des scénarios ALTER TABLE s’exécutent désormais en parallèle et entraînent une optimisation des écritures dans le journal des transactions. Toutefois, les opérations de modification de colonne sur une grande table à mémoire optimisée qui s’exécutent en parallèle peuvent entraîner une perte de données. 

Les opérations de modification de table s’exécutent de manière monothread et ne sont pas affectées par ce problème.

Résolution

Ce problème a été résolu dans la mise à jour cumulative de SQL Server suivante :

Recommandation : Installer la dernière mise à jour cumulative pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Nous vous recommandons de télécharger et d’installer les dernières mises à jour cumulatives pour SQL Server :

      

Solution de contournement

Pour contourner ce problème, désactivez l’optimisation du journal pour les opérations de modification en activant l’indicateur de trace 9909. 

Pour activer l’indicateur de trace 9909, ajoutez le paramètre de démarrage -T9909. Vous pouvez également utiliser l’instruction dbcc traceon(9909) pour une session spécifique.

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Références

En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.