Restauration d'une sauvegarde vers une ancienne version de SQL Server

29

Lors de la tentative de restauration d'une sauvegarde dans une base de données SQL Server Express 2008, j'ai eu l'erreur suivante:

Restore failed for Server '...\SQLEXPRESS'.  (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: The database was backed up on a server running version
10.50.1600. 
That version is incompatible with this server, which is running version 10.00.2531. 
Either restore the database on a server that supports the backup, or use a backup 
that is compatible with this server. (Microsoft.SqlServer.Smo)

Existe-t-il un moyen d'obtenir une sauvegarde compatible avec l'ancienne version (dans mon cas 10.00.2531) de la version la plus récente (dans mon cas 10.50.1600) de SQL Server Express?

rem
la source

Réponses:

19

Vous auriez dû utiliser les assistants d'importation / exportation dans SSMS pour tout migrer

Il n'y a pas de "rétrogradation" possible en utilisant la sauvegarde / restauration ou le détachement / attachement

gbn
la source
8

Vous pouvez utiliser l'assistant d'importation / exportation pour déplacer des données entre des bases de données.

Faites un clic droit sur la base de données que vous souhaitez exporter, choisissez "Tâches", puis "Exporter les données". L'assistant vous guidera tout au long du processus.

Vous avez raison cependant. Vous ne pourrez pas effectuer de sauvegarde / restauration en passant de SQL Server 2008 R2 à SQL Server 2008 Express.

Richard
la source
6

La seule façon est de créer une nouvelle base de données sur la version 10.00.2531 et d'importer les données de 10.50.1600.

Vous ne pouvez pas restaurer vers une version plus ancienne.

SQLRockstar
la source
6

La sauvegarde SQL Server ne prend pas en charge la compatibilité descendante

Étapes pour obtenir DB sur les anciennes versions -

  • Pour le schéma: faites un clic droit sur votre base de données -> Tâches -> générer des scripts -> suivant -> suivant -> cliquez sur le bouton avancé -> changez l'option "type de données à script" en "schéma" - -> ok -> suivant -> suivant

  • Pour les données: faites un clic droit sur votre base de données -> Tâches -> générer des scripts -> suivant -> suivant -> cliquez sur le bouton avancé -> changez l'option "type de données à script" en "données" - -> ok -> suivant -> suivant

dsingh
la source
Un problème avec cette méthode est que les grandes bases de données (beaucoup de tables et d'énormes données) exécutant des scripts à restaurer prennent beaucoup de temps. mais c'est pratique et facile
Iman
2

clic droit sur votre base de données -> Tâches -> générer des scripts -> suivant -> suivant -> cliquer sur le bouton avancé -> changer l'option "type de données à script" en "schéma et données" - > ok -> suivant -> suivant alors maintenant vous avez un script qui crée la base de données et sa table et remplit les données dedans :);)

Sarah
la source
2
Selon la quantité de données, ce script pourrait être énorme ...
Thomas Rushton
1
@ThomasRushton Ce script sera par définition plus gros que la base de données elle-même, probablement au moins le double sinon le pire! J'espère que ce n'est pas une base de données de 50 Go ...
ErikE
Ceci est une réponse en double
Burgi
ce n'est pas une réponse en double, c'est une excellente réponse car le type de données est "schéma ET données"! ;-) ce dont j'avais besoin!
juFo
1
@Burgi cette réponse est plus ancienne que celle de dsingh. Il a simplement copié celle de Sarah et ajouté 2 options, 1 pour le schéma, l'autre pour les données. Le sien est le double.
basher