Ισχύει για
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) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

Συμπτώματα

Όταν εκτελείτε μια ενημέρωση σε έναν πίνακα που έχει ένα συμπλέγματος ή μοναδικό ευρετήριο και η ενημέρωση πραγματοποιείται σε μια μη κύρια στήλη μοναδικών τιμών, η εγγραφή παρακολούθησης αλλαγών δεν συμφωνεί με την πρόταση ενημέρωσης.

Για παράδειγμα, ας υποθέσουμε ότι μια στήλη που ονομάζεται "στήλη1" περιλαμβάνεται στο συμπλέγματος ή το μοναδικό ευρετήριο. Όταν η τιμή της στήλης αλλάζει από μεγαλύτερη σε μικρότερη τιμή (όπως η αλλαγή της τιμής από 20 σε 16), ο πλαϊνός πίνακας παρακολούθησης αλλαγών λαμβάνει τη λειτουργία εισαγωγής πριν από τη λειτουργία διαγραφής. Για παράδειγμα, η λειτουργία εισαγωγής εγγραφής γραμμής του αρχείου καταγραφής συναλλαγών λαμβάνεται πριν από τη λειτουργία διαγραφής γραμμής ή το "I" πριν από το "D".

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

I

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628

Όταν η τιμή στήλης αλλάζει από μικρότερη σε μεγαλύτερη τιμή (όπως η αλλαγή της τιμής από 16 σε 20), το "D" εισάγεται πριν από το "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

I

NULL

NULL

5639485628

Αιτία

Αυτό το πρόβλημα παρουσιάζεται λόγω εσφαλμένης ταξινόμησης μεταξύ ζευγών delete/insert στον πλευρικό πίνακα παρακολούθησης αλλαγών.

Επίλυση

Η επιδιόρθωση για αυτό το πρόβλημα περιλαμβάνεται στις ακόλουθες ενημερώσεις για SQL Server:

         Συγκεντρωτική ενημέρωση 8 για SQL Server 2017

         Συγκεντρωτική ενημέρωση 9 για SQL Server 2016 Service Pack 1

Συγκεντρωτική ενημέρωση 12 για SQL Server 2014 SP2

Πληροφορίες για τις εκδόσεις SQL Server

Κάθε νέα έκδοση για SQL Server περιέχει όλες τις άμεσες επιδιορθώσεις και τις επιδιορθώσεις ασφαλείας που υπήρχαν στην προηγούμενη δομή. Συνιστάται να εγκαταστήσετε την πιο πρόσφατη έκδοση για SQL Server:

Τελευταία συγκεντρωτική ενημέρωση για SQL Server 2017

Πιο πρόσφατη δομή για SQL Server 2016

Τελευταία συγκεντρωτική ενημέρωση για SQL Server 2014

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για πρόβλημα στα προϊόντα της Microsoft που αναφέρονται στην ενότητα "Ισχύει για".

Περισσότερες πληροφορίες

Για έναν πίνακα με δυνατότητα παρακολούθησης αλλαγών, όταν μια ενημέρωση πραγματοποιείται σε μια μη κύρια στήλη που έχει οριστεί ως μοναδική, εισάγονται δύο καταχωρήσεις στον πλευρικό πίνακα παρακολούθησης αλλαγών: Μία καταχώρηση για κάθε μία από τις ενέργειες διαίρεσης, Εισαγωγή και Διαγραφή.

Όταν η συνάρτηση CHANGETABLE καλείται για την απαρίθμηση των αλλαγών, αυτές οι καταχωρήσεις ταξινομούνται κατά τιμές πρωτεύοντος κλειδιού και, στη συνέχεια, οι λειτουργίες συναθροίζονται. Εάν η ενημέρωση εισαγάγει μια χαμηλότερη τιμή, εκτελείται πρώτα μια λειτουργία "I" στον πλευρικό πίνακα, ακολουθούμενη από μια λειτουργία "D". Αυτό προκαλεί την επιστροφή μιας εσφαλμένης λειτουργίας για αυτήν τη γραμμή. Αυτό συμβαίνει επειδή το "I" που ακολουθείται από το "D" αθροίζεται ως "D".

Επειδή μόνο οι τιμές του πρωτεύοντος κλειδιού διατηρούνται στους πλαϊνούς πίνακες, δεν είναι απαραίτητο να έχετε δύο ξεχωριστές καταχωρήσεις. Αυτό ισχύει εφόσον η στήλη πρωτεύοντος κλειδιού δεν ενημερώνεται.

Αυτό το πρόβλημα έχει διορθωθεί για μη κύριες στήλες μοναδικών τιμών. Σε αυτή την περίπτωση, όταν παρουσιάζεται η ενημέρωση, εισάγεται μόνο μία γραμμή με το "U" ως λειτουργία ενημέρωσης αντί για δύο καταχωρήσεις που έχουν τα γράμματα "D" και "I".

Αναφορές

Ενημερωθείτε σχετικά με την ορολογία που χρησιμοποιεί η Microsoft για την περιγραφή των ενημερώσεων λογισμικού.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.