23 votes

Comment puis-je restaurer une base de données de fichier de sauvegarde (.bak) à partir de SQL Server 2012 SQL Server 2008 Express?

Une base de données qui a été à l'origine de SQL Server 2008, a été restauré dans SQL Server 2012. Une sauvegarde de SQL Server 2012 a été faite et je suis en train de restaurer sur mon local SQL Server 2008 Express. Mais j'ai une erreur "cast Spécifié n'est pas valide" (SQLManagerUI).

J'ai généré un Script SQL à partir de 2012 et le configurer de sorte qu'il va générer avec la compatibilité avec SQL Server 2008. Cependant, il est un grand fichier sql, autour de 700 mo.

Je me souviens avant que j'ai essayé d'exécuter un script de cette taille avant sur mon SQLExpress locale et a également obtenu une erreur.

Est il possible que je peux obtenir un "grand" de la base de données à partir de SQL Server 2012 SQL Server 2008 Express?

21voto

stormwild Points 1166

Merci à Marc et à Aaron, pour fournir les réponses.

La rapide réponse est non, il n'est pas possible de restaurer un fichier de sauvegarde à partir d'une version supérieure à une version antérieure de SQL Server.

Un travail autour de serait de générer des scripts pour créer la base de données.

Vous pouvez cibler la génération de script à une version inférieure.

Voir les observations ci-dessus pour plus d'informations.

Liens:

Pourquoi une Base de données SQL Server à partir d'une version supérieure ne peut pas être restauré sur une version antérieure de SQL Server?

Créer une Base de données dans SQL Server 2012, Script et Utiliser en 2008?

3voto

Jaycob Read Points 76

Couple de choses à ajouter qui pourrait être utile à des gens

Lors de la création de grandes bases de données à l'aide de l'assistant de script dans SSMS, il est très important de vérifier l'ordre d'exécution et être prêt à ré organiser manuellement. Les anciennes versions de SSMS eu ce problème parce qu'ils ont (probablement) se sont basés sur sp_depends qui a un bug.

Ce que j'ai trouvé très utiles dans de tels cas sont des outils comme ApexSQL Diff que vous pouvez utiliser pour lire les sauvegardes de base de données et de générer des scripts qui sont dans le bon ordre d'exécution.

Base de données SQL Server de restauration de sauvegarde sur la version inférieure

Une chose qu'aucune des méthodes de capture est la chose Aaron mentionné sur l'utilisation de fonctions spécifiques à la version supérieure.

1voto

Brian Towers Points 61

Une meilleure option que l'aide de la SSMS script de l'assistant est d'utiliser un outil similaire disponible sur Codeplex appelé SQL Base de données de l'Assistant de Migration - http://sqlazuremw.codeplex.com/releases/view/32334. Vous voulez la dernière version v4.x fonctionne avec SQL Server 2012.

L'outil est à l'origine destiné à être utilisé pour la migration des bases de données entre SQL Server et d'Azur. Cependant, l'outil fonctionne aussi bien qu'entre SQL Server et SQL Server. Le truc est de mettre en SQL Server plutôt que d'Azure en tant que cible dans les options avancées.

La raison que c'est une meilleure option que la SSMS de l'assistant de script, c'est qu'il utilise BCP pour le transfert de données plutôt que TSQL et est donc beaucoup plus efficace.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X