Sintomi
Si consideri lo scenario seguente:
- Si dispone di un database di Microsoft SQL Server 2012 o versione precedente che include più filegroup e il filegroup secondario è il filegroup predefinito.
- È possibile eseguire il backup del database e quindi ripristinarlo in SQL Server 2014.
- Imposta il filegroup principale come filegroup predefinito e quindi prova a rimuovere il gruppo di file secondario.
In questo scenario, non è possibile eliminare il filegroup secondario anche se vengono eliminati tutti i file di dati sottostanti. Il messaggio di errore indica che il filegroup secondario non può essere rimosso perché non è vuoto.
Causa
Il problema si verifica perché l'aggiornamento della versione del database crea oggetti di sistema nel filegroup predefinito anziché nel filegroup principale in SQL Server 2014. Il filegroup secondario contiene ancora alcuni oggetti di sistema.
Risoluzione
Questa correzione introduce il flag di traccia 3861 per spostare le tabelle di sistema nel filegroup principale.
Dopo aver applicato l'hotfix descritto in questo articolo, quando si avvia SQL Server utilizzando il flag di traccia 3861 come parametro di avvio, è possibile spostare le tabelle di sistema nel filegroup primario.
Se il backup del database non è stato ancora ripristinato, è possibile abilitare il flag di traccia a livello di server:
dbcc traceon(3861,-1)
<Restore the database>
dbcc traceoff(3861,-1)
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 4 per SQL Server 2014 /en-us/help/2999197
Informazioni sugli aggiornamenti cumulativi per SQL Server
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e tutte le correzioni per la sicurezza inclusi nell'aggiornamento cumulativo precedente. Scopri gli aggiornamenti cumulativi più recenti per SQL Server:
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".