Blog
home > blog > Ripristinare un backup su una versione precedente di SQL Server

Tag: SQL Server, backup, Microsoft

Ripristinare un backup su una versione precedente di SQL Server

Microsoft impedisce di ripristinare un backup creato con una versione successiva di SQL Server. Esaminiamo un workaround per aggirare il problema.
di Maurizio Ceravolo
Microsoft per scelta progettuale impedisce di ripristinare un backup creato da una versione successiva di SQL Server su una versione precedente. Anche se il backup fa riferimento ad un database in compatibilità dell'SQL Server precedente.

Immaginiamo di stare sviluppando una applicazione sul proprio computer dove c'è SQL Server 2008 R2. Progettiamo un database in compatibilità SQL Server 2008. Una volta finito, facciamo il backup lo spostiamo sul server dove c'è installato SQL Server 2008. Ripristiniamo il backup e dopo pochi secondi si blocca e ritorna questo errore:

The database was backed up on a server running version %ls. That version is incompatible with this server, which is running version %ls. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.

Purtroppo non c'è alcun verso per farglielo digerire. Se il database che abbiamo progettato non ha ancora dati dentro, la soluzione è molto semplice. Si fa creare dal Managment Studio lo script di generazione del database e lo si fa eseguire in remoto.

Se sono presenti dati invece abbiamo davanti a noi due strade che dipendono dalle dimensioni del database stesso. Se è dell'ordine delle poche migliaia di record, possiamo pensare di far scriptare oltre alla struttura anche i dati. Se per caso abbiamo già decine di migliaia di record o più, allora la questione si fa spinosa. L'unica maniera è fare una importazione di dati da un db all'altro. Però c'è il grosso rischio che ci siano blocchi continui, per violazioni di integrità referenziali. Per evitare di importare una tabella per volta, conviene disabilitare prima i vincoli già presenti sul database, come ho spiegato nel post precedente a questo.

Prima di iniziare l'importazione, non dimenticate di abilitare anche l'IDENTITY INSERT per ogni tabella, altrimenti o non vengono inseriti i dati oppure, peggio, vengono create chiavi nuove per le tabelle.

Con un po' di fatica alla fine il database viene importato. Il consiglio, però, è di verificare prima su che SQL Server andrete a pubblicare il database, e se è precedente a quello su cui di solito sviluppate, o fatevi una macchina virtuale con quella versione di SQL Server o sviluppate il db direttamente sul server remoto (se possibile). Vi risparmierete ore di perdita di tempo.
Post correlati
2012
12
Aprile
SQL Server 2012 è stato rilasciato
Maurizio Ceravolo
Microsoft ha comunicato di aver reso disponibile per la vendita ed il download SQL Server 2012, l'ultima release del suo DBMS.
2012
13
Aprile
Introducing Microsoft SQL Server 2012: Ebook gratuito
Maurizio Ceravolo
Con il rilascio di SQL Server 2012, Microsoft pubblica in maniera gratuita l'ebook "Introducing Microsoft SQL Server 2012" per iniziare a conoscere il nuovo dbms.
2010
9
Dicembre
TSQL: concatenare più record senza usare un cursore
Maurizio Ceravolo
Concatenare più record di una tabella in un'unica stringa necessita un cursore, che però è poco performante. Vediamo un metodo tramite FOR XML PATH per concatenare con una query secca.
2010
26
Novembre
Modificare l'owner delle tabelle di un database su SQL Server
Maurizio Ceravolo
Vediamo un semplice script per generare l'sql per modificare l'owner di tutte le tabelle di un database in SQL Server.
2010
1
Dicembre
Microsoft Lync
Maurizio Ceravolo
Microsoft lancia la piattaforma di comunicazione Lync durante la prima giornata dedicata all'Home Office. In Microsoft Italia oggi ogni dipendente lavorerà in telelavoro.


Archivio Mensile Blog
Tag Cloud
Apple domotica Facebook geek giornali Google Google+ humor infografica innovazione marketing Microsoft Motori di ricerca politica SEO Simoncelli social network video videogiochi YouTube
Ultimi Post
I migliori di oggi
I più popolari del mese
Top post