Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Έχετε έναν υπολογιστή που έχει εγκατεστημένο τον Microsoft SQL Server 2012.
-
Έχετε ένα ερώτημα που περιέχει μια πρόταση υπόθεσης σε μια πρόταση Select και μια πρόταση Case σε μια πρόταση Group by .
-
Οι δύο προτάσεις πεζών-κεφαλαίων αξιολογούνται σε null.
-
Μπορείτε να εκτελέσετε το ερώτημα.
Σε αυτό το σενάριο, λαμβάνετε το ακόλουθο μήνυμα σφάλματος:
MSG 8120, επίπεδο 16, κατάσταση 1, γραμμή 3Column ' <όνομα στήλης> ' δεν είναι έγκυρο στη λίστα επιλογής, επειδή δεν περιέχεται σε συνάρτηση συγκεντρωτικών αποτελεσμάτων ή στον όρο GROUP BY.
Για παράδειγμα, μπορείτε να εκτελέσετε το ακόλουθο ερώτημα:create database testgouse testgocreate table tvt ( v1t binary(1) null)create table tln (ln numeric(5) not null)goselectcase when 1=2 then t1.col1else 10end,casewhen t1.col1 = 2 then t1.col2endfrom (select t2.v1t as col1, 10 as col2 from tvt t2) t1group by case when 1=2 then t1.col1else 10end,casewhen t1.col1 = 2 then t1.col2endgo Στο ερώτημα, η πρόταση "όταν 1 = 2, στη συνέχεια T1. ΣΤ1 else 10" αξιολογείται σε 10. Όταν αντικαθιστάτε το "10" χρησιμοποιώντας την τιμή NULL, προκύπτει αυτό το πρόβλημα.Σημείωση Αυτό το πρόβλημα δεν παρουσιάζεται όταν καταργείτε μία από τις προτάσεις υπόθεσης από την πρόταση Select ή από την πρόταση Group by .
Επίλυση
Αφού εφαρμόσετε την επιδιόρθωση, πρέπει να ενεργοποιήσετε μια σημαία παρακολούθησης για να κάνετε την επείγουσα επιδιόρθωση να λειτουργήσει. Επικοινωνήστε με την υποστήριξη της Microsoft όταν πρέπει να εφαρμόσετε αυτήν την επιδιόρθωση.
Το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server.
Αθροιστική ενημερωμένη έκδοση 6 για τον SQL Server 2012 SP1 /en-us/help/2874879
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".