Simptome
Luați în considerare următorul scenariu:
-
Aveți o bază de date care are izolare instantanee sau citire la nivel de izolare instantanee activată în Microsoft SQL Server 2012 sau SQL Server 2014.
-
Baza de date conține un tabel care nu este necompletat, care are un index grupat cu mai multe coloane. Cheia de conducere a indexului grupat este setată la NOT NULL.
-
Începeți o tranzacție și adăugați o coloană în tabel. Valoarea acestei coloane este actualizată.
-
Modificați cheia de început a indexului grupat pentru a permite valoarea NULL.
-
Inserați rânduri cu valori nule pentru cheia de vârf a indexului grupat, apoi anulați tranzacția.
În acest scenariu, revenirea determină ca baza de date să fie suspectată și doar "reparator" cu comanda DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS . În plus, este posibil să primiți următorul mesaj de eroare:
MSG 3316, nivel 21, stat 2, linie 135 în timpul anulării unei operațiuni înregistrate în baza de date '%. * ls ', a apărut o eroare la ID înregistrare jurnal% S_LSN. Rândul nu a fost găsit. Restaurați baza de date dintr-o copie de rezervă completă sau reparați baza de date.
Rezolvare
Informații despre pachetul de servicii pentru SQL Server 2014
Pentru a rezolva această problemă, obțineți Service Pack 1 pentru SQL Server 2014.
Pentru mai multe informații despre SQL Server 2014 Service Pack 1 (SP1), consultați erori remediate în SQL server 2014 Service Pack 1.
Informații despre pachetul de servicii pentru SQL Server 2012
Pentru a rezolva această problemă, obțineți cel mai recent pachet Service Pack pentru Microsoft SQL Server 2012. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2755533 Cum se obține cel mai recent pachet Service Pack pentru SQL Server 2012
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.