Συμπτώματα
Ας υποθέσουμε ότι έχετε ένα ερώτημα που εκτελεί ορισμένες λειτουργίες συμβολοσειράς, για παράδειγμα, συνένωσης, σε στήλες CHAR ή VARCHAR στον Microsoft SQL Server 2014, 2016 και 2017. Εξετάστε το ακόλουθο σενάριο:
-
Μπορείτε να ενώσετε στήλες με διαφορετικές ταξινομήσεις που έχουν εκχωρηθεί σε αυτές.
-
Αυτές οι ταξινομήσεις δεν είναι συμβατές μεταξύ τους. Για παράδειγμα, προσπαθείτε να ενώσετε μια στήλη που έχει ταξινομηθεί ως Latin1_General_CI_AI με Latin1_General_BIN.
-
Το τελικό αποτέλεσμα της συνένωσης εκχωρείται σε μια συγκεκριμένη Συρραφή (συμπεριλαμβανομένου του "database_default") ως θέμα της επίλυσης διενέξεων συρραφής.
Σε αυτό το σενάριο, ο SQL Server μπορεί να επιστρέψει μια δήλωση λιανικής πώλησης που αναφέρει "μη έγκυρη σύγκριση λόγω μη ΣΥΡΡΑΦΉς" και ενδέχεται να λάβετε ορισμένα μηνύματα σφάλματος που μοιάζουν με τα εξής:
Τοποθεσία: typinfo. cpp:LineNumber Παράσταση: False SPID: SPID Αναγνωριστικό διεργασίας: Αναγνωριστικό Περιγραφή: μη έγκυρη σύγκριση λόγω μη ΣΥΡΡΑΦΉς.
Msg 3624, επίπεδο 20, κατάσταση 1, LineNumber line Ένας ελέγχου διεκδίκησης συστήματος απέτυχε. Επιλέξτε το αρχείο καταγραφής σφαλμάτων του SQL Server για λεπτομέρειες. Συνήθως, μια Αποτυχία διεκδίκησης προκαλείται από σφάλμα λογισμικού ή καταστροφή δεδομένων. Για να κάνετε μεταβίβαση ελέγχου για καταστροφή της βάσης δεδομένων, εξετάστε το ενδεχόμενο εκτέλεσης DBCC CHECKDB. Εάν συμφωνήσατε να στείλετε χωματερές στη Microsoft κατά τη διάρκεια της εγκατάστασης, θα σταλεί μια μικρή ένδειξη σφαλμάτων στη Microsoft. Μια ενημέρωση μπορεί να είναι διαθέσιμη από τη Microsoft στο πιο πρόσφατο Service Pack ή σε μια επείγουσα επιδιόρθωση από την τεχνική υποστήριξη.
MSG 596, επίπεδο 21, κατάσταση 1, LineNumber line Δεν είναι δυνατή η συνέχιση της εκτέλεσης, επειδή η περίοδος λειτουργίας βρίσκεται στην κατάσταση Kill.
Msg 0, επίπεδο 20, κατάσταση 0, LineNumber line
Παρουσιάστηκε σοβαρό σφάλμα στην τρέχουσα εντολή. Τα αποτελέσματα, εάν υπάρχουν, θα πρέπει να απορρίπτονται.
Αιτία
Κατά τη διάρκεια του σταδίου βελτιστοποίησης ερωτήματος, ο SQL Server προσπαθεί να υπολογίσει τις επιβάσεις σε ενδιάμεσα αποτελέσματα διαφόρων σταδίων του ερωτήματος, για παράδειγμα, τη συνένωση. Επειδή η επίλυση διενέξεων συρραφής πραγματοποιείται στο ίδιο άκρο, η βελτιστοποίηση ερωτήματος μπορεί να μην το αγνοεί και προσπαθεί να πραγματοποιήσει τον υπολογισμό της προτεραιότητα συνένωσης σε μια εισαγωγή με αντιφατική συρραφή.
Επίλυση
Αυτό το ζήτημα διορθώνεται με τις ακόλουθες αθροιστικές ενημερώσεις για τον SQL Server:
Αθροιστική ενημερωμένη έκδοση 8 για SQL Server 2016 SP1
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Η πιο πρόσφατη αθροιστική ενημέρωση για τον SQL Server 2016
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".
Αναφορές
Μάθετε περισσότερα σχετικά με την ορολογίαπου χρησιμοποιεί η Microsoft για την περιγραφή ενημερώσεων λογισμικού.