Objawy
Załóżmy, że masz bazę danych obsługującą funkcję FILESTREAM w wystąpieniu usługi Microsoft SQL Server. Po uruchomieniu transakcji i użyciu interfejsu API platformy .NET SqlFileStream do otwarcia pliku FileStream zadanie może zakończyć się niepowodzeniem i zgłosić wyjątek z powodu czynników zewnętrznych.
Jeśli otworzysz plik ponownie przy użyciu usługi SqlFileStream w ramach tej samej transakcji i zatwierdzenia, mogą zostać wyświetlone komunikaty o błędach wewnętrznych podobne do następujących:
Uwaga
data, godzina, spids, nieznany, błąd: 5571<c/> istotność: 23<c/> stan: 3.
data, godzina, spids, nieznany, wewnętrzny błąd FILESTREAM: nie można uzyskać dostępu do tabeli wyrzucania elementów bezużytecznych.
W przypadku uruchomienia dbcc checktable ('sys.filestream_tombstone_2073058421') może zostać wyświetlony następujący komunikat o błędzie:
Uwaga
Wiadomość 8951, Poziom 16, Stan 1, Numer wiersza
Błąd tabeli: table dbcc checktable ('sys.filestream_tombstone_2073058421') ( IDNumber identyfikatora). Wiersz danych nie ma pasującego wiersza indeksu w indeksie "FSTSNCIdx" (identyfikatorIDNumber). Możliwe brakujące lub nieprawidłowe klucze do dopasowania wiersza indeksu:
Rozwiązanie
Rozwiązanie tego problemu jest zawarte w następujących aktualizacjach programu SQL Server:
Aktualizacja zbiorcza 13 dla programu SQL Server 2017
Aktualizacja zbiorcza 1 dla programu SQL Server 2014 z dodatkiem Service Pack 3
Aktualizacja zbiorcza 15 dla programu SQL Server 2014 z dodatkiem Service Pack 2
Informacje o kompilacjach programu SQL Server
Każda nowa kompilacja programu SQL Server zawiera wszystkie poprawki zabezpieczeń z poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla używanej wersji programu SQL Server:
Wersje kompilacji programu SQL Server 2017
Wersje kompilacji programu SQL Server 2014
Obejście
Aby obejść ten problem, odbuduj indeks bazy danych przy użyciu polecenia DBCC CHECKTABLE .
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Źródła informacji
Dowiedz się więcej o standardowej terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.