KB2448971-ΕΠΙΔΙΌΡΘΩΣΗ: τα κλειδώματα ενός πίνακα δεν κλιμακώνονται όταν εισαγάγετε πολλές γραμμές σε έναν πίνακα στον SQL Server 2008 ή στον SQL Server 2008 R2

Ισχύει για: SQL Server 2008 Service Pack 4SQL Server 2008 R2 Service Pack 3

Συμπτώματα


Εξετάστε το ακόλουθο σενάριο:
  • Μπορείτε να εισαγάγετε πολλές γραμμές σε έναν πίνακα στον Microsoft SQL Server 2008 ή στον SQL Server 2008 R2, χρησιμοποιώντας ένα από τα ακόλουθα ερωτήματα:
    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>
    Σημειώσεις
    • Το <target_table συμβόλου κράτησης θέσης>αντιπροσωπεύει το πραγματικό όνομα του πίνακα προορισμού.
    • Το κατηγόρημα<> σύμβολο κράτησης θέσης αντιπροσωπεύει το πραγματικό κατηγόρημα.
    • Το <source_table συμβόλου κράτησης θέσης>αντιπροσωπεύει τον πραγματικό πίνακα προέλευσης.
  • Γίνεται υπέρβαση του ορίου κλιμάκωσης κλειδώματος του πίνακα.
Σε αυτό το σενάριο, ο μηχανισμός βάσης δεδομένων δεν κλιμακώνεται στα κλειδώματα του πίνακα.

Αιτία


Αυτό το πρόβλημα παρουσιάζεται επειδή ο SQL Server δεν υπολογίζει εσωτερικά όλα τα νέα κλειδώματα που δημιουργούνται από τις λειτουργίες ΕΙΣΑΓΩΓΉς. Επομένως, το όριο κλιμάκωσης κλειδώματος μπορεί να μην ενεργοποιείται όταν απαιτείται.

Επίλυση


Πληροφορίες για το Service Pack για τον SQL Server 2008

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

Πληροφορίες για το Service Pack για τον SQL Server 2008 R2

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

Κατάσταση


Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".Αυτό το πρόβλημα διορθώθηκε για πρώτη φορά στον SQL Server 2008 Service Pack 2 για τον SQL Server 2008. αυτό το πρόβλημα διορθώθηκε για πρώτη φορά στον SQL Server 2008 R2 Service Pack 1 για τον SQL Server 2008 R2.

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


Για περισσότερες πληροφορίες σχετικά με την κλιμάκωση κλειδώματος, επισκεφθείτε την ακόλουθη τοποθεσία Web του Microsoft TechNet:Για να προσδιορίσετε εάν τα κλειδώματα ενός πίνακα κλιμακώνονται, εκτελέστε τις ακόλουθες προτάσεις Transact-SQL:
USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x 
Εάν τα κλειδώματα του πίνακα κλιμακώνονται, η τελευταία πρόταση SELECT επιστρέφει μια τιμή είτε του 1 είτε του 2. Εάν τα κλειδώματα του πίνακα δεν κλιμακώνονται, η τελευταία πρόταση SELECT επιστρέφει μια τιμή είτε του 40.066 είτε του 40.067.