J'ai installé SQL 2012 avec SP1 sur mon ordinateur. J'ai fait une sauvegarde d'une base de données test.bak
.
J'ai une base de données avec le nom test2
qui est la même base de données, mais les données ont changé.
Je veux restaurer test.bak
sur la test2
base de données.
Je reçois toujours l'erreur:
Erreur 3154: le jeu de sauvegarde contient une sauvegarde d'une base de données autre que la base de données existante.
J'ai essayé:
J'ai fait un clic droit
test2 -> Restore database -> From device
J'ai choisi
test.bak
et vérifiéWith Replace
mais j'obtiens l'erreur.J'ai ensuite essayé de faire un clic droit sur
test2 -> Restore file and filegroups
J'ai choisi
test.bak
et vérifiéWith Replace
mais j'obtiens l'erreur.
Je peux supprimer mon ancienne base de données, puis restaurer ma sauvegarde avec le bon nom, mais lorsque j'utilisais SQL 2008, je n'ai eu aucun problème à restaurer sur une base de données existante.
Il semble que depuis que j'utilise SQL2012, je reçois beaucoup cette erreur!
la source
1) À utiliser
WITH REPLACE
lors de l'utilisation de laRESTORE
commande.2)
DROP
l'ancienne base de données en conflit et restaurer à nouveau à l'aide de laRESTORE
commande.Il n'y a aucun problème avec la version de SQL Server. Comme l'a souligné Aaron, je peux également restaurer la base de données de 2008 à 2012 et les mêmes versions également.
la source
Vous restaurez la mauvaise base de données. Ne pensez pas à cela comme "restauration
test2
avec une sauvegarde à partir detest
", pensez à "restaurer ma sauvegarde detest
mais renommez-la commetest2
". Vous pouvez choisir la tâche de restauration à partirtest
et mettretest2
dans la « base de données To: ».Comme Aaron le mentionne, apprenez le script plutôt que de vous fier à l'assistant - il est plus clair de savoir ce qui se passe où.
la source
Vous pouvez toujours le faire, mais cela nécessite une étape supplémentaire.
Ouvrez la boîte de dialogue de restauration, faites vos sélections habituelles selon les habitudes de 2008. Si la base de données d'origine est DB, choisissez le périphérique DB.bak pour la source et remplacez le nom de destination par DBTest. Ensuite, sous Sélectionnez une page (coin supérieur gauche), où vous voyez Général / Fichiers / Options - choisissez Fichiers. Regardez dans la grille. Vous verrez des colonnes pour le nom de fichier d'origine et la restauration en tant que nom de fichier. Élargissez manuellement ce dernier et saisissez le nouveau nom (si le nom d'origine de la base de données est DB et que vous souhaitez créer DBTest, remplacez .... \ DB.mdf par ... \ DBTest.mdf, etc.)
Cela acceptera votre fichier .bak pour DB comme source et DBTest comme destination. Vous devrez peut-être également accéder à la page Options et choisir Avec remplacer. Je dois le faire pour d'autres raisons, donc je ne peux pas le tester sans cette option.
la source
Comme indiqué, la bonne réponse consiste à utiliser l'
WITH REPLACE
option.Je veux juste souligner que vous pouvez obtenir l'erreur dans la question même lors de l'utilisation
WITH REPLACE
, si vous essayez de restaurer à partir d'une sauvegarde différentielle (sans la sauvegarde complète).la source
J'espère que cela fonctionnera.
la source
Veuillez arrêter votre serveur en cours d'exécution puis restaurer la base de données, cela vous aidera. :)
la source