Συμπτώματα
Ας υποθέσουμε ότι έχετε μια βάση δεδομένων με δυνατότητα FILESTREAM σε μια παρουσία του Microsoft SQL Server. Όταν ξεκινάτε μια συναλλαγή και χρησιμοποιείτε το API .NET SqlFileStream για να ανοίξετε ένα αρχείο Filestream, η εργασία μπορεί να αποτύχει και να δημιουργήσει μια εξαίρεση εξαιτίας εξωτερικών παραγόντων.
Εάν ανοίξετε ξανά το αρχείο χρησιμοποιώντας το SqlFileStream στην ίδια συναλλαγή και δέσμευση, ενδέχεται να λάβετε εσωτερικά μηνύματα λάθους παρόμοια με τα εξής:
Σημείωση
ημερομηνία/ώρα, spids, άγνωστο, σφάλμα: 5571<c/> Σοβαρότητα: 23<c/> Κατάσταση: 3.
ημερομηνία ώρας, spids, άγνωστο, εσωτερικό Σφάλμα FILESTREAM: απέτυχε η πρόσβαση στον πίνακα συλλογής απορριφθέντων στοιχείων.
Εάν εκτελέσετε dbcc checktable ('sys.filestream_tombstone_2073058421'), ενδέχεται να λάβετε το ακόλουθο μήνυμα λάθους:
Σημείωση
Msg 8951, Επίπεδο 16, Κατάσταση 1, LineNumber
Σφάλμα πίνακα: πίνακας ελέγχου dbcc πίνακα ('sys.filestream_tombstone_2073058421') ( ID IDNumber). Η γραμμή δεδομένων δεν έχει αντίστοιχη γραμμή ευρετηρίου στο ευρετήριο 'FSTSNCIdx' (ID IDNumber). Πιθανά κλειδιά που λείπουν ή δεν είναι έγκυρα για την αντιστοιχία της γραμμής ευρετηρίου:
Επίλυση
Η επιδιόρθωση για αυτό το πρόβλημα περιλαμβάνεται στις ακόλουθες ενημερώσεις για SQL Server:
Αθροιστική ενημέρωση 13 για το SQL Server 2017
Αθροιστική ενημερωμένη έκδοση 1 για SQL Server 2014 Service Pack 3
Αθροιστική ενημερωμένη έκδοση 15 για SQL Server 2014 Service Pack 2
Σχετικά με τις δομές SQL Server
Κάθε νέα έκδοση για SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και τις επιδιορθώσεις ασφαλείας που υπήρχαν στην προηγούμενη δομή. Συνιστούμε να εγκαταστήσετε την πιο πρόσφατη έκδοση για την έκδοση του SQL Server που διαθέτετε:
Εκδόσεις δομής SQL Server 2017
Εκδόσεις έκδοσης SQL Server 2014
Λύση
Για να επιλύσετε αυτό το ζήτημα, δημιουργήστε ξανά το ευρετήριο βάσης δεδομένων, χρησιμοποιώντας την εντολή DBCC CHECKTABLE .
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Παραπομπές
Ενημερωθείτε σχετικά με τη βασική ορολογία που χρησιμοποιεί η Microsoft για να περιγράφει τις ενημερώσεις λογισμικού.