2015-01-05 18 views
9

Esistono strumenti per convertire il database di SQL Server 2014 al 2012?Backup di SQL Server 2014 al 2012

Ho provato Genera script ma lo script generato con i dati è troppo grande e SQL Server Management Studio non l'ha eseguito, ho bisogno di avere sia schema che dati.

risposta

8

Per quanto ne so, ci sono fondamentalmente tre due opzioni per la migrazione di un database a una versione inferiore di SQL Server, senza l'utilizzo di strumenti 3rd party:

  • generare script (non proprio adatto per grandi quantità di dati)
  • Custom Scripting e BCP o importazione/esportazione guidata
  • SQL Server Integration Services (Trasferisci database Task)

Prima opzione non è adatta nel tuo caso, come indicato.

La seconda opzione consiste semplicemente nello script della struttura del database e quindi nell'importazione/esportazione guidata per copiare i dati, una tabella alla volta. Si noti che se si dispone di vincoli di chiave esterna nel database, è possibile disabilitare i vincoli fino a quando non sono state compilate tutte le tabelle con i dati. This blog post spiega in dettaglio come ciò può essere fatto.

Terza opzione utilizza il SISS Transfer Database Task che utilizza fondamentalmente SMO per creare gli oggetti sul server di destinazione e quindi trasferisce i dati. Questo è il metodo consigliato per la migrazione di un database tra istanze di SQL Server di versioni diverse. SSIS richiede di aver installato SQL Server Data Tools - Business Intelligence (SSDT-BI) per Visual Studio. Prima di SQL Server 2012, questo veniva chiamato Business Intelligence Development Studio (BIDS). È possibile scaricare questi qui:

+0

Come posso utilizzare l'attività del database di trasferimento SSIS? Gli strumenti dati di Microsoft SQL Server devono essere installati in Visual Studio? oppure ... – Azarsa

+0

Ho aggiornato la mia risposta con alcuni link riguardanti SSDT-BI e BIDS. – Dan

3

Utilizzare lo script, ma anziché eseguirlo tramite Management Studio, utilizzare l'utilità leggera sqlcmd.

http://msdn.microsoft.com/es-es/library/ms162773.aspx

+1

Se il database contiene tabelle con milioni di righe, lo script generato potrebbe non essere sufficientemente grande (diverse decine o centinaia di GB). Sarà un problema eseguire uno script così grande anche usando l'utilità sqlcmd. – Dan

+0

@Dan Avevo caricato file con diversi gigabyte di dati con questo metodo senza problemi .. – Oscar

+0

Ok, devo ammettere che non l'ho mai provato.In genere, lo script occupa 2-3 volte lo spazio del database stesso, il che potrebbe rappresentare un problema se non si dispone di spazio su disco sufficiente per gli ambienti. Questo potrebbe ovviamente essere risolto suddividendo lo script in parti più piccole, ma sembra molto più lavoro rispetto all'utilizzo, ad esempio, di [Attività del Database di trasferimento SSIS] (http://msdn.microsoft.com/en-us /library/ms141204.aspx). – Dan

1

Vabbè, seconda opzione di Dan non funziona: dopo l'installazione di SSDT-BI per VS2013 e la configurazione della Task Trasferisci database si dice che la versione dell'istanza di database di origine deve essere inferiore o uguale alla versione di l'istanza del database di destinazione: quindi, una migrazione dal 2014 al 2012 (o nel mio caso 2008R2) non è possibile.

Problemi correlati