Generare automaticamente l'SQL di INSERT per n record esistenti

lunedì, 28 gennaio 2008 23.19 by Marco Bellinaso

Qualche giorno fa ho avuto per l'ennesima volta la necessità di duplicare sul DB remoto di produzione n record che avevo creato sul DB locale di sviluppo di un sito. Sebbene sia possibile tramite gli strumenti di SQL Server esportare dei dati dal DB locale ed importarli direttamente in uno remoto, o sia comunque possibile esportare i dati in formato CSV importandoli poi altrove, l'opzione che ho sempre preferito (perlomeno nel caso abbia solo bisogno di replicare altrove n record da un'unica tabella, senza dover mantenere ID e integrità referenziale con altre tabelle) è di creare automaticamente un file con tanti statement INSERT quanti sono i record da copiare. Questa opzione è perfetta anche nel caso in cui la vostra applicazione sia venduta come pacchetto che il cliente si installa in casa, e abbiate bisogno di creargli gli script per auto-popolare il suo DB con dei dati di test, o comunque dei dati di base - non occorrerà infatti spiegargli procedure più o meno complesse per importare i dati da un file csv o da un DB remoto raggiungibile online...basterà solo fargli aprire il file .sql tramite il Query Analyzer, e farlo eseguire sul DB di destinazione.

Lo strumento che uso io è SQL Scripter, tool gratuito sviluppato tra l'altro con VB2005. E' molto ricco di opzioni, e permette ad esempio di specificare i campi da includere nella INSERT, i filtri condizionali (WHERE) che identificano i record per cui generare le INSERT (utile se voglio esportare solo i record inseriti negli ultimi n giorni, o solo quelli che fanno riferimento ad una certa categoria), la tabella di destinazione, l'utilizzo di transazioni ecc.

Correntemente valutato 4.3 da 3 utenti

  • Currently 4,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   ,
Categorie:   Sviluppo software
Azioni:   E-mail | Permalink | Commenti (1) | RSS CommentiRSS comment feed

Post correlati

Commenti

agosto 8. 2008 11.00

Raffaele

Di un utilità grandissima, purtoppo ora a pagamento. :-(

Ciao

Raffaele

Commenti chiusi