Simptome
Luați în considerare următorul scenariu:
-
Aveți o bază de date Microsoft SQL Server 2012 sau o versiune anterioară care are mai multe grupuri, iar filegroup secundar este filegroup implicit.
-
Faceți o copie de rezervă a bazei de date, apoi restaurați-o în SQL Server 2014.
-
Setați filegroup principală ca filegroup implicit, apoi încercați să eliminați filegroup secundar.
În acest scenariu, nu puteți șterge filegroup secundară chiar dacă toate fișierele de date de sub acesta sunt șterse. Mesajul de eroare Arată că filegroup secundare nu pot fi eliminate, deoarece nu este gol.
Cauză
Problema apare deoarece upgrade-ul versiunii de bază de date creează obiecte de sistem pe filegroup implicită în locul filegroup primare în SQL Server 2014. Filegroup secundară conține încă câteva obiecte de sistem.
Rezolvare
Această remediere introduce semnalizatorul de urmărire 3861 pentru a muta tabelele de sistem în filegroup principală. După ce aplicați remedierea rapidă descrisă în acest articol, când porniți SQL Server utilizând Trace Flag 3861 ca parametru de pornire, acesta poate muta tabelele de sistem în filegroup principală. Dacă nu ați restaurat încă copia de rezervă a bazei de date, puteți activa semnalizarea de urmărire la nivel de server:
dbcc traceon(3861,-1)<Restore the database>dbcc traceoff(3861,-1)
Problema a fost remediată pentru prima dată în următoarea actualizare cumulativă de SQL Server.
Actualizarea cumulativă 4 pentru SQL Server 2014 /en-us/help/2999197
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.