Symptomy
Rozpatrzmy następujący scenariusz:
-
W programie Microsoft SQL Server 2012 lub SQL Server 2014 jest włączona baza danych z izolacją migawek lub poziomem izolacji Read Committed.
-
Baza danych zawiera niepustą tabelę zawierającą wielokolumnowy indeks klastrowany. W kluczu wiodącym indeksu klastrowanego jest ustawiona wartość not null.
-
Rozpoczynanie transakcji i Dodawanie kolumny do tabeli. Wartość tej kolumny jest aktualizowana.
-
Aby zezwolić na wartość NULL, należy zmienić klucz wiodący indeksu klastrowanego.
-
Wstawiasz wiersze z wartościami NULL dla klucza wiodącego indeksu klastrowanego, a następnie Przerwij transakcję.
W tym scenariuszu wycofanie sprawia, że baza danych będzie podejrzana i tylko "naprawianie" przy użyciu polecenia DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS . Ponadto może zostać wyświetlony następujący komunikat o błędzie:
Msg 3316, poziom 21, stan 2, wiersz 135 podczas cofania zarejestrowanej operacji w bazie danych "%. * ls" Wystąpił błąd w rekordzie dziennika o IDENTYFIKATORze% S_LSN. Nie znaleziono wiersza. Przywróć bazę danych z pełnej kopii zapasowej lub napraw bazę danych.
Rozwiązanie
Informacje o dodatku Service Pack dla programu SQL Server 2014
Aby rozwiązać ten problem, uzyskaj dodatek Service Pack 1 dla programu SQL Server 2014.
Aby uzyskać więcej informacji na temat dodatku Service Pack 1 (SP1) dla programu SQL Server 2014, zobacz błędy, które rozwiązano w dodatku SQL server 2014 z dodatkiem Service Pack 1.
Informacje o dodatku Service Pack dla programu SQL Server 2012
Aby rozwiązać ten problem, Uzyskaj najnowszy dodatek Service Pack dla programu Microsoft SQL Server 2012. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2755533 Jak uzyskać najnowszy dodatek Service Pack dla programu SQL Server 2012
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".