Ongelman ilmenemistapa
Mieti seuraavaa tilannetta:
- Sinulla on Microsoft SQL Server 2012 tai aiemman version tietokanta, jossa on useita tiedostoryhmiä, ja toissijainen tiedostoryhmä on oletustiedostoryhmä.
- Tietokanta varmuuskopioidaan ja palautetaan sitten SQL Server 2014:ään.
- Määrität ensisijaisen tiedostoryhmän oletustiedostoryhmäksi ja yrität sitten poistaa toissijaisen tiedostoryhmän.
Tässä tapauksessa et voi poistaa toissijaista tiedostoryhmää, vaikka kaikki sen alla olevat datatiedostot poistettaisiin. Virhesanomassa näkyy, että toissijaista tiedostoryhmää ei voi poistaa, koska se ei ole tyhjä.
Syy
Tämä johtuu siitä, että tietokantaversion päivitys luo järjestelmäobjekteja oletustiedostoryhmään SQL Server 2014:n ensisijaisen tiedostoryhmän sijaan. Toissijainen tiedostoryhmä sisältää edelleen joitakin järjestelmäobjekteja.
Ratkaisu
Korjaus sisältää seurantamerkinnän 3861, jolla järjestelmätaulukot siirretään ensisijaiseen tiedostoryhmään.
Kun olet ottanut käyttöön tässä artikkelissa kuvatun hotfix-korjauksen ja käynnistät SQL Server:n käyttämällä seurantamerkintää 3861 käynnistysparametrina, se voi siirtää järjestelmätaulukot ensisijaiseen tiedostoryhmään.
Jos et ole vielä palauttanut tietokannan varmuuskopiota, voit ottaa jäljitysmerkinnän käyttöön palvelintasolla:
dbcc traceon(3861,-1)
<Restore the database>
dbcc traceoff(3861,-1)
Ongelma korjattiin ensimmäisen kerran seuraavassa SQL Server kumulatiivisessa päivityksessä.
SQL Server 2014:n kumulatiivinen päivitys 4 /en-us/help/2999197
Tietoja SQL Serverin kumulatiivisista päivityksistä
Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.