Η Microsoft διανέμει τις επιδιορθώσεις του Microsoft SQL Server 2008 και του Microsoft SQL Server 2008 R2 ως ένα αρχείο με δυνατότητα λήψης. Επειδή οι ενημερώσεις κώδικα είναι αθροιστικές, κάθε νέα έκδοση περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 ή SQL Server 2008 R2 έκδοση της ενημέρωσης κώδικα.
Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
Μπορείτε να δημιουργήσετε έναν πίνακα που περιέχει μια μη ντετερμινιστική υπολογιζόμενη στήλη σε μια βάση δεδομένων SQL Server 2008 ή SQL Server 2008 R2. Για παράδειγμα, μπορείτε να εκτελέσετε την ακόλουθη πρόταση για να δημιουργήσετε έναν πίνακα που περιέχει μια μη ντετερμινιστική υπολογιζόμενη στήλη: CREATE TABLE [dbo]. [Τ1](
[Ημερομηνία_γέννησης] ΗΜΕΡΟΜΗΝΊΑ,
[Ηλικία] AS (FLOOR(DATEDIFF(DAY;[DateOfBirth];GETDATE())/(365.0))))GO Σημείωση Σε αυτή την πρόταση, η συνάρτηση GETDATE είναι μη ντετερμινιστική.Μπορείτε να εκτελέσετε την sp_createstats αποθηκευμένη διαδικασία για να βελτιώσετε τις επιδόσεις.
Σημείωση Η sp_createstats αποθηκευμένη διαδικασία δημιουργεί στατιστικά στοιχεία μονής στήλης για οποιεσδήποτε κατάλληλες στήλες στη βάση δεδομένων
Σε αυτό το σενάριο, η sp_createstats αποθηκευμένη διαδικασία αποτυγχάνει. Επομένως, ενδέχεται να μην έχουν δημιουργηθεί στατιστικά στοιχεία για ορισμένες κατάλληλες στήλες. Επιπλέον, εμφανίζεται το ακόλουθο μήνυμα σφάλματος:
Σημείωση
Msg 2729, Επίπεδο 16, Κατάσταση 1, Γραμμή 1
Η στήλη 'Age' στον πίνακα 'dbo.t1' δεν μπορεί να χρησιμοποιηθεί σε ευρετήριο ή στατιστικά στοιχεία ή ως κλειδί διαμερίσματος επειδή είναι μη ντετερμινιστική.
Αιτία
Αυτό το ζήτημα παρουσιάζεται επειδή η sp_createstats αποθηκευμένη διαδικασία δεν παραλείπει τις μη ντετερμινιστικές υπολογισμένες στήλες.
Επίλυση
Πληροφορίες αθροιστικής ενημέρωσης
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 δημιουργούνται για συγκεκριμένα SQL Server service pack. Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2008 Service Pack 1 σε μια εγκατάσταση του SQL Server 2008 Service Pack 1. Από προεπιλογή, οποιαδήποτε επείγουσα επιδιόρθωση παρέχεται σε ένα SQL Server service pack περιλαμβάνεται στο επόμενο SQL Server service pack.
SQL Server 2008 Service Pack 2
Η ενημέρωση κώδικα για αυτό το ζήτημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 1 για SQL Server 2008 Service Pack 2. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστική ενημερωμένη έκδοση, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
2289254 Αθροιστική ενημερωμένη έκδοση 1 για SQL Server 2008 Service Pack 2Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη έκδοση SQL Server 2008 της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης ενημερώσεων κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:
2402659 Οι εκδόσεις του SQL Server 2008 που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server Service Pack 2
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 δημιουργούνται για συγκεκριμένα SQL Server service pack. Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2008 Service Pack 2 σε μια εγκατάσταση του SQL Server 2008 Service Pack 2. Από προεπιλογή, οποιαδήποτε επείγουσα επιδιόρθωση παρέχεται σε ένα SQL Server service pack περιλαμβάνεται στο επόμενο SQL Server service pack.
SQL Server 2008 R2
Η επιδιόρθωση για αυτό το ζήτημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 4. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστική ενημερωμένη έκδοση για το SQL Server 2008 R2, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής βάσης της Microsoft:
2345451 Πακέτο αθροιστικών ενημερώσεων 4 για το SQL Server 2008 R2 Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2008 R2 έκδοση της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης ενημερώσεων κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:
981356 Οι SQL Server δομές του 2008 R2 κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 R2
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Παραπομπές
Για περισσότερες πληροφορίες σχετικά με τις ντετερμινιστικές και μη προσδιοριστικές συναρτήσεις, επισκεφθείτε την ακόλουθη τοποθεσία Web του Microsoft Developer Network (MSDN):
Γενικές πληροφορίες για τις ντετερμινιστικές και μη ντετερμινιστικές συναρτήσεις Για περισσότερες πληροφορίες σχετικά με την sp_createstats αποθηκευμένη διαδικασία, επισκεφθείτε την ακόλουθη τοποθεσία MSDN στο Web:
Γενικές πληροφορίες σχετικά με την αποθηκευμένη διαδικασία Transact-SQL "sp_createstats" Για περισσότερες πληροφορίες σχετικά με τις υπολογιζόμενες στήλες, επισκεφθείτε την ακόλουθη τοποθεσία MSDN στο Web:
Γενικές πληροφορίες σχετικά με τις υπολογιζόμενες στήλες Για περισσότερες πληροφορίες σχετικά με το μοντέλο τμηματικής συντήρησης για το SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
935897 Ένα μοντέλο τμηματικής συντήρησης είναι διαθέσιμο από την ομάδα SQL Server για την παροχή επειγουσών επιδιορθώσεων για τα προβλήματα που έχουν αναφερθεί
Για περισσότερες πληροφορίες σχετικά με τη διάταξη ονομασίας για ενημερωμένες εκδόσεις SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
822499 Νέα διάταξη ονομασίας για τα πακέτα ενημερωμένων εκδόσεων λογισμικού του Microsoft SQL Server Για περισσότερες πληροφορίες σχετικά με την ορολογία ενημερωμένων εκδόσεων λογισμικού, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
824684 Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερωμένων εκδόσεων λογισμικού της Microsoft