Applies ToSQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2008 R2 Developer

Η Microsoft διανέμει τις επιδιορθώσεις του Microsoft SQL Server 2008 ως ένα αρχείο με δυνατότητα λήψης. Επειδή οι επιδιορθώσεις είναι αθροιστικές, κάθε νέα έκδοση περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν στον προηγούμενο SQL Server 2008 έκδοση της ενημέρωσης κώδικα.

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο.

  • Έχετε ένα ερώτημα που χρησιμοποιεί τη συνάρτηση row_number μαζί με έναν αριστερό εξωτερικό σύνδεσμο στον Microsoft SQL Server 2008.

  • Μπορείτε να δημιουργήσετε μια πρόταση Select που χρησιμοποιεί το ερώτημα ως δευτερεύον ερώτημα και επιστρέφει μοναδικές γραμμές χρησιμοποιώντας την ξεχωριστή λέξη-κλειδί.

  • Μπορείτε να εκτελέσετε αυτήν την πρόταση Select .

Σε αυτό το σενάριο, ενδέχεται να λάβετε ένα λανθασμένο αποτέλεσμα. Ο αριστερός εξωτερικός σύνδεσμος αγνοείται εσφαλμένα.Σημείωση Για περισσότερες πληροφορίες σχετικά με τον τρόπο αναπαραγωγής αυτού του ζητήματος, ανατρέξτε στην ενότητα "βήματα για την αναπαραγωγή αυτού του ζητήματος" στην ενότητα "περισσότερες πληροφορίες".

Επίλυση

Πληροφορίες αθροιστικής ενημέρωσης

SQL Server 2008 R2

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 6. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστικής ενημερωμένης έκδοσης για τον SQL Server 2008 R2, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2489376 Αθροιστική ενημερωμένη έκδοση πακέτου 6 για τον SQL Server 2008 R2 Σημείωση Επειδή οι εκδόσεις είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη έκδοση της ενημέρωσης κώδικα του SQL Server 2008 R2. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

981356 Οι εκδόσεις του SQL Server 2008 R2 που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 R2

SQL Server 2008 Service Pack 1

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε για πρώτη φορά στην αθροιστική ενημερωμένη έκδοση 11 για τον SQL Server 2008 Service Pack 1. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστικής ενημερωμένης έκδοσης, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2413738 Πακέτο αθροιστικών ενημερώσεων 11 για τον SQL Server 2008 Service Pack 1Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 έκδοση της ενημέρωσης κώδικα. Η Microsoft συνιστά να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

970365 Ο SQL Server 2008 δημιουργεί τα οποία κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 Service Pack 1 Οι επείγουσες επιδιορθώσεις του Microsoft SQL Server 2008 δημιουργούνται για συγκεκριμένα Service Pack του SQL Server. Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2008 Service Pack 1 σε μια εγκατάσταση του SQL Server 2008 Service Pack 1. Από προεπιλογή, οποιαδήποτε επείγουσα επιδιόρθωση που παρέχεται σε ένα Service Pack του SQL Server περιλαμβάνεται στο επόμενο Service Pack του SQL Server.

SQL Server 2008 Service Pack 2

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε για πρώτη φορά στην αθροιστική ενημερωμένη έκδοση 2 για τον SQL Server 2008 Service Pack 2. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστικής ενημερωμένης έκδοσης, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2467239 Αθροιστική ενημερωμένη έκδοση πακέτου 2 για τον SQL Server 2008 Service Pack 2Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 έκδοση της ενημέρωσης κώδικα. Η Microsoft συνιστά να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

2402659 Ο SQL Server 2008 δημιουργεί τα οποία κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 Service Pack 2 Οι επείγουσες επιδιορθώσεις του Microsoft SQL Server 2008 δημιουργούνται για συγκεκριμένα Service Pack του SQL Server. Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2008 Service Pack 2 σε μια εγκατάσταση του SQL Server 2008 Service Pack 2. Από προεπιλογή, οποιαδήποτε επείγουσα επιδιόρθωση που παρέχεται σε ένα Service Pack του SQL Server περιλαμβάνεται στο επόμενο Service Pack του SQL Server.

Κατάσταση

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

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

Βήματα για την αναπαραγωγή αυτού του ζητήματος

  1. Εκτελέστε τις ακόλουθες προτάσεις. Αυτές οι προτάσεις δημιουργούν δύο πίνακες και εισάγουν ορισμένα δεδομένα στους πίνακες.

    create table A (a1 int)create table B (b1 int)insert into A values(1)insert into B values(1)insert into B values(1)
  2. Εκτελέστε την ακόλουθη πρόταση. Αυτή η πρόταση χρησιμοποιεί τη συνάρτηση row_number μαζί με έναν αριστερό εξωτερικό σύνδεσμο.

    select a1, row_number() over (partition by a1 order by a1) as a3from Aleft join B ON A.a1 = B.b1
  3. Εκτελέστε την ακόλουθη πρόταση. Αυτή η πρόταση χρησιμοποιεί το ερώτημα στο βήμα 2 ως δευτερεύον ερώτημα:

    select distinct a1, a3from (      select a1, row_number() over (partition by a1 order by a1) as a3      from A      left join B ON A.a1 = B.b1) as x

Σημείωση Το ερώτημα στο βήμα 3 επιστρέφει ένα εσφαλμένο αποτέλεσμα όταν παρουσιαστεί αυτό το ζήτημα.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τη συνάρτηση row_number και τους εξωτερικούς συνδέσμους, επισκεφθείτε τις ακόλουθες τοποθεσίες Web του Microsoft Developer Network (MSDN):

Για περισσότερες πληροφορίες σχετικά με το μοντέλο τμηματικής συντήρησης για τον SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

935897 Ένα μοντέλο τμηματικής συντήρησης είναι διαθέσιμο από την ομάδα του SQL Server για την παροχή επειγουσών επιδιορθώσεων για προβλήματα που έχουν αναφερθείΓια περισσότερες πληροφορίες σχετικά με τη διάταξη ονομασίας για τις ενημερώσεις του SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

822499Νέα διάταξη ονομασίας για τα πακέτα ενημερώσεων λογισμικού του Microsoft SQL ServerΓια περισσότερες πληροφορίες σχετικά με την ορολογία ενημερώσεων λογισμικού, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

824684 Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερώσεων λογισμικού της Microsoft

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

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

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

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.