none
Convertire database sql 2008 in sql 2005 RRS feed

  • Domanda

  • Ciao a tutti,
    avrei la necessità di convertire un database creato con Sql Server 2008 in Sql Server 2005.
    Il mio obbiettivo sarebbe quello di riuscire a creare un file mdf con la console di Sql Server 2008 su cui sia possibile effettuare l'"Attach" dalla console di Sql Server 2005.

    Da ricerche sul web ho visto che c'è la possibilità di generare uno script ed eseguirlo sulla console Sql Server 2005. Purtroppo questa soluzione ha un grande svantaggio con database di grandi dimensioni (il file di script diventerebbe enorme).
    Esiste un'altra soluzione che mi consenta di creare un database Sql Server 2005 a partire da un database Sql 2008?

    Grazie per l'aiuto

    giovedì 25 febbraio 2010 16:26

Risposte

  • Esiste un'altra soluzione che mi consenta di creare un database Sql Server 2005 a partire da un database Sql 2008?

    Ciao Marco,

    Come saprai è sempre possibile eseguire un upgrade di versione di un database ripristinando un full backup sull'istanza più recente ma non vale il contrario.
    Per raggiungere l'obiettivo che ti sei prefissato non mi vengono in mente altre soluzioni se non installare una istanza SQL Server 2005 (anche express) sulla quale "migrare" il database SQL Server 2008... OK, ma in che modo?

    Di strade ce ne sono molte, scriptare dati e metadati in compatibility mode 2005, usare un package SSIS, bcp, ma probabilmente l'opzione più comoda è quella di ricorrere al Copy Database Wizard selezionando come istanza di origine quella 2008 e come destinazione quella 2005.
    Premetto che non ho mai eseguito una prova del genere, ma se non hai utilizzato peculiarità proprie della versione 2008 dovrebbe funzionare.

    Ad ogni modo ti ricordo che un db SQL Server è SEMPRE costituito da almeno 2 files: il Master Data File (.mdf), il Transaction Log (.ldf) ed eventuali data files secondari (.ndf), quindi quando eseguirai il detach del db dovrai copiare TUTTI i files sull'istanza di destinazione.
    In alternativa puoi eseguire un full backup e distribuire solo quell'unico file, ripristinandolo sull'istanza target.

    Ciao!
    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    giovedì 25 febbraio 2010 20:28
    Moderatore

Tutte le risposte

  • Esiste un'altra soluzione che mi consenta di creare un database Sql Server 2005 a partire da un database Sql 2008?

    Ciao Marco,

    Come saprai è sempre possibile eseguire un upgrade di versione di un database ripristinando un full backup sull'istanza più recente ma non vale il contrario.
    Per raggiungere l'obiettivo che ti sei prefissato non mi vengono in mente altre soluzioni se non installare una istanza SQL Server 2005 (anche express) sulla quale "migrare" il database SQL Server 2008... OK, ma in che modo?

    Di strade ce ne sono molte, scriptare dati e metadati in compatibility mode 2005, usare un package SSIS, bcp, ma probabilmente l'opzione più comoda è quella di ricorrere al Copy Database Wizard selezionando come istanza di origine quella 2008 e come destinazione quella 2005.
    Premetto che non ho mai eseguito una prova del genere, ma se non hai utilizzato peculiarità proprie della versione 2008 dovrebbe funzionare.

    Ad ogni modo ti ricordo che un db SQL Server è SEMPRE costituito da almeno 2 files: il Master Data File (.mdf), il Transaction Log (.ldf) ed eventuali data files secondari (.ndf), quindi quando eseguirai il detach del db dovrai copiare TUTTI i files sull'istanza di destinazione.
    In alternativa puoi eseguire un full backup e distribuire solo quell'unico file, ripristinandolo sull'istanza target.

    Ciao!
    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    giovedì 25 febbraio 2010 20:28
    Moderatore
  • Grazie Lorenzo,

    come temevo si tratta comunque di installare sia un'istanza di Sql Server 2008 che Sql Server 2005  a meno di non scriptare dati e metadati.
    Scusa, non avevo specificato che una limitazione che avevo era quella di creare un db sql server 2005 (file .mdf) avendo a disposizione solamente l'istanza di Sql Server 2008.  
    Purtroppo non sono riuscito ad utilizzare il task "Copy Database Wizard" con successo, analizzando il log ho visto che mi da un errore "This SQL Server version (10.0) is not supported". A questo punto la strada che ho deciso di intraprendere e quella di utilizzare i "Linked Servers" per copiare i dati.

    Grazie ancora per la disponibilità.

    Ciao
    Marco
    venerdì 26 febbraio 2010 15:24