2012-04-24 6 views
10

Se creo un database utilizzando 2012 e lavoro e aggiungo le informazioni ad esso, se dovessi eseguire uno script nel database dopo, sarei in grado di eseguire lo script nel 2008 e avere tutto a posto A.O.K?Crea database in SQL Server 2012, script e utilizzo nel 2008?

+4

Probabilmente sarebbe più sicuro iniziare nel 2008 e migrare verso il 2012. –

+0

L'unica ragione per cui chiedo è che ho un'installazione beta di Windows Server 8 con SQL Server 2012 e voglio impostare l'accesso a SQL esternamente in modo da poter lavorare su un progetto dalla mia classe. In questo modo, il mio partner di progetto e io avremo sia il database più recente con cui lavorare, piuttosto che dover passare una copia del database e provare a fonderlo insieme in ogni momento con ciascuna delle nostre modifiche. Alla fine, il database deve essere in grado di collegarsi a una versione 2008. E preferirei non disinstallare/reinstallare 2008 per farlo. –

risposta

10

Una sceneggiatura? Sì. Bene, fammi riformulare: dipende. Finché gli oggetti non utilizzano alcuna funzionalità specifica per il 2012, sarà possibile eseguire lo script out dello schema utilizzando Management Studio o una serie di strumenti di terze parti (I blogged about some options here). Molti degli strumenti offrono anche opzioni (o strumenti complementari) per scrivere anche i dati.

Il problema è che non c'è un modo molto semplice in SQL Server 2012 per identificare tutti i luoghi dove si potrebbe essere utilizzando le funzionalità 2012-specifici. Ad esempio, non conosco uno strumento che ispezionerà il tuo database e ti informerà che stai utilizzando la funzione FORMAT(), che non è disponibile in SQL Server 2008 o 2008 R2.

Altri mezzi di copiare il database di over - backup/restore, applicare/rimuovere, mirroring/log shipping ecc non funzionerà. Puoi salire (dal 2005, 2008 o 2008 R2) al 2012, ma non puoi tornare indietro.

Quindi in generale sono d'accordo con John. Molto più sicuro da sviluppare su una versione < = versione di distribuzione. Perché vorresti svilupparti entro il 2012 per il 2008? Sembra abbastanza rischioso per me.

+1

Sono appena giunto a questa conclusione considerando che non riesco a creare nessuna tabella da un remoto posizione utilizzando SSMS per il 2008 ... :(Disinstalla/Reinstalla qui andiamo! –

22

Se si utilizza SQL Management Studio, è possibile fare clic con il pulsante destro del mouse sul nome del database, quindi selezionare Attività → Genera script.

Qui è possibile creare script per la creazione di schemi, dati o schemi e dati e, facendo clic sul pulsante Avanzate, è possibile specificare la versione di SQL Server che si desidera utilizzare.

Quindi, è sufficiente scegliere SQL 2008 come server di destinazione e si dovrebbe essere pronti per partire!

+0

Eccellente, sapevo della generazione di script, semplicemente non sapevo che avrei potuto scegliere la versione per l'output. Questo aiuta molto. Grazie. –

+3

Tranne se le procedure memorizzate hanno una sintassi specifica per il 2012 (ad esempio la funzione FORMAT()), la procedura guidata li esegue in modo del tutto invisibile, indipendentemente dalla versione di destinazione, e non avvisa che lo script di creazione avrà esito negativo. –

+0

Ulteriori dettagli qui: http://superuser.com/questions/468578/move-database-from-sql-server-2012-to-2008 – Shane

2

Se si dispone di grandi quantità di dati per spostare (gigabyte) e poi gli script TSQL che lo SQL Management Studio genererà per voi potrebbe dare problemi a causa della vastità. Un'alternativa migliore sarebbe utilizzare BCP (Bulk Copy Program). Lo svantaggio è che si tratta di un'utilità della riga di comando e richiede più lavoro rispetto all'utilizzo della procedura guidata.

Per fortuna ha voluto che qualcuno ha scritto qualcosa che assomiglia notevolmente la procedura guidata solo con BCP. È la Migrazione guidata database SQL ed è disponibile gratuitamente su Codeplex - http://sqlazuremw.codeplex.com/releases/view/32334. Originariamente concepito come strumento di migrazione del database tra SQL Server e Azure, è possibile utilizzarlo altrettanto facilmente tra SQL Server e SQL Server. La chiave è entrare nelle opzioni avanzate (simili alla procedura guidata di Management Studio) e selezionare SQL Server. Successivamente, quando viene richiesto il sistema di destinazione, scegliere l'installazione 2008.

non avevo 2012 artefatti specifici nel mio database e ha funzionato molto bene per me.

Problemi correlati