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
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.
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.
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.
2011
6
Settembre
Google limita YouTube su Windows Phone 7
Maurizio Ceravolo
Windows Phone 7 è un concorrente per Android con ampi margini di crescita e Google lo ostacola con pratiche anticoncorrenziali limitando l'accesso a YouTube.
2011
20
Giugno
Facebook rilascia l'SDK c#
Maurizio Ceravolo
Facebook ha appena rilasciato l'SDK ufficiale per sviluppare applicazioni che si interfacciano con Facebook utilizzando il c#.


Archivio Mensile Blog
Tag Cloud
Apple Facebook finanza geek Google Google+ Groupon humor innovazione iPad IT Microsoft navigazione satellitare scraping social network social plugin validazione video viral Windows Phone 7
Ultimi Post
I migliori di oggi
I più popolari del mese
Top post