KB4046745 - ΕΠΙΔΙΌΡΘΩΣΗ: Η πρόταση UPDATE αποτυγχάνει σιωπηρά όταν αναφέρετε μια ανύπαρκτη συνάρτηση διαμερισμάτων στον όρο WHERE στο SQL Server 2014, 2016 ή 2017

Ισχύει για
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 SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise SQL Server 2016 Service Pack 1 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)

Συμπτώματα

Ας υποθέσουμε ότι έχετε μια πρόταση UPDATE που αναφέρεται σε μια ανύπαρκτη συνάρτηση διαμερισμάτων, χρησιμοποιώντας τη λέξη-κλειδί $PARTITION στο Microsoft SQL Server 2014, 2016 ή 2017. Για παράδειγμα,

Σημείωση

UPDATE TableName SET ColumnName='xyz' WHERE $PARTITION. NonExistingPartitionFunction(ColumnName) = 1

Σε αυτήν την περίπτωση, SQL Server δεν εκτελεί ενημέρωση ή επιστρέφει μήνυμα σφάλματος για να υποδείξει ότι το αντικείμενο NonExistingPartitionFunction δεν υπάρχει. Ωστόσο, από την πλευρά του χρήστη, φαίνεται ότι η πρόταση UPDATE εκτελέστηκε με επιτυχία, αλλά στην πραγματικότητα απέτυχε.

Αιτία

Όταν εκτελείτε μια δέσμη, SQL Server μπορεί να εκτελέσει την ανάλυση μετατεθειμένων ονομάτων (DNR). Σε αυτήν τη διαδικασία, η SQL Server δεν παράγει αμέσως σφάλμα όταν συναντά ένα ανύπαρκτο αντικείμενο και αναμένει ότι το αντικείμενο θα δημιουργηθεί από τη λειτουργική μονάδα ή τη δέσμη πριν από την εκτέλεση της πρότασης που αναφέρεται σε αυτό το αντικείμενο. Για λειτουργίες διαμερισμάτων, SQL Server δεν χειρίζεται σωστά το DNR.

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

Για περισσότερες πληροφορίες σχετικά με την DNR, ανατρέξτε στο θέμα Επίλυση μετατεθειμένων ονομάτων.

Επίλυση

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

Αθροιστική ενημερωμένη έκδοση 8 για SQL Server 2016 SP1

Αθροιστική ενημέρωση 4 για το SQL Server 2017

Αθροιστική ενημερωμένη έκδοση 9 για SQL Server 2014 SP2

Πληροφορίες σχετικά με τις συγκεντρωτικές ενημερώσεις για SQL Server:

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

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

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

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

Κατάσταση

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

Παραπομπές

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