Esistono diversi modi per farlo:
- Utilizzo di SSIS (SQL Server Integration Services) . Importa solo
data
nella tua tavola Le proprietà delle colonne, i vincoli, le chiavi, gli indici, le stored procedure, i trigger, le impostazioni di sicurezza, gli utenti, gli accessi e così via non vengono trasferiti. Tuttavia è un processo molto semplice e può essere eseguito semplicemente tramite la procedura guidata in SQL Server Management Studio. - Utilizzo di una combinazione di Script di creazione SSIS e DB . In questo modo otterrai i dati e tutti i metadati mancanti che non vengono trasferiti da SSIS. Anche questo è molto semplice. Innanzitutto trasferire i dati tramite SSIS (vedere le istruzioni di seguito), quindi creare lo script DB Create dal database di SQL Azure e riprodurlo nuovamente nel database locale.
- Infine, puoi utilizzare il servizio di importazione/esportazione in SQL Azure . Questo trasferisce i dati (con un oggetto schema) ad Archiviazione BLOB di Azure come BACPAC. Sarà necessario un account di archiviazione di Azure e farlo nel portale Web di Azure. È semplice come premere un pulsante "Esporta" nel portale Web di Azure quando si seleziona il database che si desidera esportare. Lo svantaggio è che è solo una procedura manuale, non conosco un modo per automatizzarla tramite strumenti o script, almeno la prima parte che richiede un clic sulla pagina web.
Procedura manuale per il metodo n. 1 (utilizzando SSIS) è il seguente:
- In Sql Server Management Studio (SSMS) crea un nuovo database vuoto sulla tua istanza SQL locale.
- Scegli Importa dati dal menu contestuale (fai clic con il pulsante destro del mouse sul database -> Attività -> Importa dati...)
- Digitare i parametri di connessione per l'origine (SQL Azure). Seleziona ".Net Framework Data Provider for SqlServer" come provider.
- Scegli il database locale vuoto esistente come destinazione.
- Segui la procedura guidata:sarai in grado di selezionare i dati delle tabelle che desideri copiare. Puoi scegliere di saltare uno qualsiasi dei tavoli che non ti servono. Per esempio. se conservi i registri dell'applicazione nel database, probabilmente non ne avrai bisogno nel backup.
Puoi automatizzarlo creando il pacchetto SSIS e rieseguendolo ogni volta che vuoi reimportare i dati. Tieni presente che puoi importare solo utilizzando SSIS in un DB pulito, non puoi eseguire aggiornamenti incrementali al database locale dopo averlo già eseguito una volta.
Metodo n. 2 (dati SSID più oggetti schema) è molto semplice. Per prima cosa segui i passaggi descritti sopra, quindi crea lo script di creazione DB (fai clic con il pulsante destro del mouse sul database in SSMS, scegli Genera script -> Crea database). Quindi riproduci di nuovo questo script sul tuo database locale.
Metodo n. 3 è descritto nel Blog qui:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/. È disponibile un clip video con il processo di trasferimento del contenuto del database nell'archiviazione BLOB di Azure come BACPAC. Successivamente puoi copiare il file localmente e importarlo nella tua istanza SQL. Il processo di importazione di BACPAC nell'applicazione di livello dati è descritto qui:http://msdn.microsoft.com/en-us/library/hh710052.aspx.