Est-il possible de restaurer la sauvegarde Sql Server 2008 dans sql server 2005

Est-il possible de restaurer une sauvegarde D'une base de données SQL Server 2008 sur une instance de SQL Server 2005?

J'ai besoin de travailler sur un exemple d'application pour laquelle la sauvegarde de base de données est dans sql server 2008. Mais je ne serai pas en mesure d'installer 2008. Alors, est-il possible de restaurer cette sauvegarde en 2005?

26
demandé sur Nayana Setty 2009-02-13 12:26:27

8 réponses

Non. Il n'est pas possible de restaurer une base de données à partir d'une sauvegarde d'une version plus récente.

Si vous êtes mort, je pense que votre meilleure option est de sélectionner la base de données dans L'Explorateur D'objets dans SQL 2008, faites un clic droit, sélectionnez Tâches - > générer Scripts.In la boîte de dialogue Options emable sur tout, y compris les données de Script.

Et assurez-vous de sélectionner "Script SQL 2005".

Source

Lors de l'importation des objets dans votre serveur cible, si les objets sont volumineux vous pouvez constater que vous ne pouvez pas ouvrir le fichier SQL via Management Studio (avec une erreur complètement inutile "l'opération n'a pas pu être terminée", pas moins). C'est bon, il suffit de charger le fichier via sqlcmd.

35
répondu Garry Shutler 2013-05-14 13:23:51

Une chose importante manque dans toutes les réponses et c'est le fait que générer des Scripts dans SSMS ne commande pas correctement les scripts.

Les Scripts doivent être ordonnés dans l'ordre de dépendance correct afin que les tables enfants soient créées après les tables parentes et autres.

Ce n'est pas un problème pour les petites bases de données où il est facile de réorganiser les scripts manuellement, mais cela peut être un problème énorme lorsqu'il s'agit de bases de données contenant plus de 100 objets.

Mon expérience est que son plus pratique d'utiliser des outils tiers qui peuvent lire la sauvegarde et générer des scripts dans le bon ordre. J'utilise ApexSQL Diff et Data Diff de ApexSQL mais vous ne pouvez pas vous tromper avec un fournisseur populaire.

6
répondu Monte Chavis 2013-06-24 09:10:31

Non, pas directement. Les sauvegardes de base de données SQL Server 2008 ne sont pas rétrocompatibles avec SQL Server 2005. Cependant, avec SQL Server 2008 Management Studio, vous pouvez écrire des données et des schémas en mode SQL Server 2005. Cet article décrit le processus en détail.

5
répondu Mitch Wheat 2009-02-13 09:29:02

Oui c'est possible

Utilisation de L'exportation dans SQL Server 2008. Aller à All Programs --> Microsoft SQL Server 2008 --> Import and Export Data

  • Ensuite, la fenêtre SQL Server Import AND Export Wizard sera ouverte. Appuyez sur Next

  • Choisissez une source de données (dans votre cas à partir de SQL Server 2008). Choisissez une Destination (dans votre cas à partir de SQL Server 2005).

  • Sélectionnez Copy data from one or more tables or view

  • Sélectionnez les tables de la source et les tables de destination

  • Cliquez sur Next & Finish

À compléter.

4
répondu Hazem Fergany 2011-11-10 09:00:06

J'ai eu ce problème depuis longtemps.

Vous ne pouvez pas restaurer les sauvegardes SQL2008 sur une instance SQL2005.

Et pour moi, les solutions de contournement comme import/export wizzard ou pour scripter la base de données à partir de SQL2008 en utilisant les scripts de génération avec l'option for SQL2005 ne fonctionneront pas. Parce que simplement, mes bases de données se recoupent dans leurs vues et leurs procédures stockées ou UDF. Ils ne relèvent pas complètement de ma responsabilité et je ne peux donc pas les consolider en 1 la base de données. Ils sont un ensemble de 6 dB qui se réfèrent les uns aux autres directement à l'intérieur de leurs vues et des procédures stockées. Lorsque je les transfère d'une instance SQL2005 à une autre, je fais généralement une sauvegarde/restauration complète.

Si je devais les Scripter, même avec l'option with dependencies, j'obtiendrais des erreurs au moment de la recréation car db1 ne trouvera pas de vues dans db3 car il se trouve que j'ai d'abord exécuté le script create db1. Si j'ai essayé db3 d'abord, j'obtiens des exceptions similaires.

Le seul moyen les Scripter pour que je n'aie pas de telles exceptions de dépendance, c'est comprendre une séquence qui fonctionne et les Scripter partiellement de cette manière: disons: db1_tables suivi de db2_tables suivi de db2_views suivi de db1_views, sp, udfs etc.

J'ai une telle séquence. Et quand j'ai besoin de créer un nouvel ensemble de ces 6 dB, j'ai exécuté les scripts partiels plus petits en séquence.

Cela explique pourquoi les scripts génèrent, avec des dépendances et avec des données et mis à la version SQL2005 scripts, ne fonctionnera tout simplement pas pour moi.

Le Wizzard import / export est meilleur dans mon cas car il copiera les tables et vous devrez toujours Scripter toutes les vues, sp, UDF etc.

Ce dont j'ai vraiment besoin, c'est d'un outil de conversion pour les fichiers de sauvegarde SQL2008, pour les convertir au format SQL2005. Alors mon problème disparaîtra. Ou une sorte d'outil qui permettrait de restaurer à partir de fichiers de sauvegarde complète SQL2008, sans me poser trop de questions.

Si quelqu'un connaît ces outils et les a utilisés, laissez-moi savoir.

4
répondu scorpiophd 2012-11-08 15:07:06

Vous pouvez utiliser DBSave , c'est un excellent outil freeware pour sauvegarder et restaurer ms sql server sur différentes machines. C'est très simple à installer et à utiliser.

1
répondu MP1963 2010-06-19 08:08:07

Non, vous ne pouvez pas, mais des outils comme SQL Compare / Data Compare de red gate peuvent lire directement les fichiers de sauvegarde et transférer les informations vers une base de données en direct, en traitant toute syntaxe ou paramètres non compatibles sur SS2005

0
répondu thecoop 2010-06-19 08:26:19

N'ayant pas eu de chance avec les choses Import/Export (les exportations de fichiers plats ont échoué à l'importation en prétendant des problèmes de mappage de charset [même si le même charset utilisé partout] et / ou des problèmes de troncature [même si la source et la destination avaient exactement la même structure]), et n'ayant pas eu de chance avec l'option "Générer des scripts" suggérée par Garry Shutler (Il a généré un script avec des erreurs de syntaxe), j'étais enfin capable de copier la grande table que je voulais copier de 2008 à 2005 en utilisant l'utilitaire SQL Server bcp . C'est donc une autre option pour cette situation, bien que pour une base de données entière, il serait table par table et n'aide probablement pas avec les vues et autres.

Les étapes que j'ai utilisées:

  1. Sur le serveur source, utilisez " Script Table As...CREATE " pour obtenir la structure, exécutez-la sur le serveur cible.

  2. Sur le serveur cible, créez un fichier au format bcp en utilisant votre table nouvellement créée:

    bcp database.owner.table format nul -f table.fmt -n

    (Si vous n'utilisez pas l'authentification Windows, vous pouvez avoir besoin des options -U et -P pour spécifier le nom d'utilisateur et le mot de passe.)

  3. Copiez ce fichier de format sur le serveur source (si nécessaire).

  4. Exporter les données dans un fichier sur le serveur source:

    bcp database.owner.table out table.dat -f table.fmt

    (Encore une fois, peut-être avec -U et -P.)

  5. Copiez le fichier de données vers le serveur cible (si nécessaire).

  6. Importer les données sur la cible serveur:

    bcp database.owner.table in table.dat -f table.fmt

    (Encore une fois, peut-être avec -U et -P.)

Dans l'espoir que se révèle utile à quelqu'un d'autre.

0
répondu T.J. Crowder 2017-05-23 11:46:14