Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Lorsque vous exécutez une mise à jour sur une table qui a un index cluster ou unique et que la mise à jour se produit sur une colonne unique non principale, l’enregistrement de suivi des modifications n’est pas cohérent avec l’instruction de mise à jour.

Par exemple, supposons qu’une colonne nommée « column1 » est incluse dans l’index cluster ou unique. Lorsque la valeur de colonne passe d’une valeur plus grande à une valeur plus petite (par exemple, la modification de la valeur de 20 à 16), la table latérale de suivi des modifications reçoit l’opération d’insertion avant l’opération de suppression. Par exemple, l’opération d’insertion d’enregistrement de ligne dans le journal des transactions est reçue avant l’opération de suppression de ligne, ou « I » est inséré avant « D ».

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

Je

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628


Lorsque la valeur de colonne passe d’une valeur plus petite à une valeur plus grande (par exemple, la modification de la valeur de 16 à 20), « D » est inséré avant « I ».

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

D

NULL

NULL

5639485628

1126

33

Je

NULL

NULL

5639485628

Cause

Ce problème se produit en raison d’un classement incorrect entre les paires delete/insert dans la table latérale de suivi des modifications.

Résolution

Le correctif de ce problème est inclus dans les mises à jour suivantes pour SQL Server :

         Mise à jour cumulative 8 pour SQL Server 2017

         Mise à jour cumulative 9 pour SQL Server Service Pack 1 2016

Mise à jour cumulative 12 pour SQL Server 2014 SP2

À propos des builds SQL Server

Chaque nouvelle build pour SQL Server contient tous les correctifs de sécurité et correctifs de sécurité qui se trouvaient dans la build précédente. Nous vous recommandons d’installer la dernière build pour SQL Server :

Dernière mise à jour cumulative pour SQL Server 2017

dernière version pour SQL Server 2016

Dernière mise à jour cumulative pour SQL Server 2014

État

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Informations supplémentaires

Pour une table activée pour le suivi des modifications, lorsqu’une mise à jour se produit sur une colonne non primaire définie comme unique, deux entrées sont insérées dans la table côté suivi des modifications : une entrée pour chacune des actions fractionnées, Insérer et Supprimer.

Lorsque la fonction CHANGETABLE est appelée pour énumérer les modifications, ces entrées sont triées par des valeurs de clé primaire, puis les opérations sont agrégées. Si la mise à jour insère une valeur inférieure, une opération « I » est exécutée d’abord sur la table latérale, suivie d’une opération « D ». Cela entraîne le retour d’une opération incorrecte pour cette ligne. Cela est dû au fait que « I » suivi de « D » est agrégé comme « D ».

Étant donné que seules les valeurs de clé primaire sont conservées dans les tables latérales, il n’est pas nécessaire d’avoir deux entrées distinctes. Cela est vrai tant que la colonne de clé primaire n’est pas mise à jour.

Ce problème est résolu pour les colonnes uniques non primaires. Dans ce cas, lorsque la mise à jour se produit, une seule ligne est insérée en ayant « U » comme opération de mise à jour au lieu de deux entrées qui ont « D » et « I ».

Références

Découvrez la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×