Domanda

Esiste uno strumento equivalente per l'esportazione/dumping di schemi e dati per SQL Server come per MySQL con mysqldump.Sto cercando di trasferire un sito ASP legacy e non sono più felice di lavorare su un server Windows.

Nota:L'utilità di esportazione DTS sembra esportare i dati, senza definizioni di tabella.L'utilizzo di Enterprise Manager e l'esportazione del database si avvicinano all'esportazione dello schema e dei dati...ma mancano ancora le procedure memorizzate.

Fondamentalmente sto cercando una soluzione "tuttofare" che comprenda tutto ciò di cui ho bisogno in una volta.

È stato utile?

Soluzione

Il modo più semplice è la procedura guidata di pubblicazione del database SQL Server.

  • Fonte aperta
  • Gratuito
  • Fa esattamente quello che vuoi
  • Sviluppato da Microsoft

Non ha tutte le funzionalità di mysqldump ma gli si avvicina abbastanza.

http://www.codeplex.com/sqlhost/wiki/view.aspx?title=database%20publishing%20wizard

Altri suggerimenti

Per farlo in modo davvero semplice con SQL Server 2008 Management Studio:

1.) Fare clic con il tasto destro sul database (non sulla tabella) e selezionare Attività -> Genera script

location of tool

2.) Fare clic su Avanti nella prima pagina

3.) Se vuoi copiare l'intero database, fai semplicemente clic su Avanti.Se desideri copiare tabelle specifiche, fai clic su "Seleziona oggetti di database specifici", seleziona le tabelle desiderate, quindi fai clic su Avanti.

4.) Dovrebbe essere selezionato "Salva su file". IMPORTANTE:Fai clic sul pulsante Avanzate accanto a "Salva su file", trova "Tipi di dati nello script" e modifica "Solo schema" in "Schema e dati" (se desideri creare la tabella) o "Solo dati" (se stai copiando i dati in una tabella esistente).

adding data to the script

5.) Fai clic sul resto e il gioco è fatto!Verrà salvato come file .sql.

Il modo più semplice per spostare un database sarebbe utilizzare SQL Server Management Studio per esportare il database su un altro server o, se non funziona, eseguire un backup come suggerito da altri e ripristinarlo altrove.

Se stai cercando un modo per scaricare la struttura della tabella in SQL e creare script di inserimento per i dati, una buona opzione gratuita sarebbe quella di utilizzare amScript e amInsert da http://www.asql.biz/en/Download2005.aspx.

Se desideri una buona versione a pagamento, darei un'occhiata a Red-Gate SQL Compare e Red-Gate SQL-Data Compare.Questi strumenti sono probabilmente eccessivi e probabilmente un po' costosi se non intendi usarli molto.Penserei che sarebbe per lo più relegato ai DBA.Puoi consultare gli strumenti Red-Gate su http://www.red-gate.com/.

Non trovando lo strumento giusto, ho deciso di crearne uno mio:un'utilità della riga di comando sqlserverdump.Dai un'occhiata su http://sqlserverdump.codeplex.com/.

Ancora più semplice è utilizzare l'API SMO.Ti consente di fare esattamente come mysqldump, e anche meglio.Ecco un esempio di codice:

http://samyem.blogspot.com/2010/01/automate-sql-dumps-for-sqlserver.html

Bene, Mysqldump è una serie di istruzioni SQL.Puoi farlo con DTS, ma perché non semplicemente creare un backup e ripristinarlo sul tuo nuovo computer?

Se vuoi farlo tramite SQL:http://msdn.microsoft.com/en-us/library/aa225964(SQL.80).aspx

Oppure fai semplicemente clic con il pulsante destro del mouse sul DB e premi Attività -> Backup (http://msdn.microsoft.com/en-us/library/ms187510.aspx)

il più semplice sarebbe un backup e ripristino o scollegamento e collegamento

oppure scrivere tutte le tabelle e BCP i dati, quindi BCP nei dati sul nuovo server

oppure utilizzare DTS/SSIS per farlo

SQL Enterprise Manager o SQL Server Management Studio dispongono di approcci basati su procedure guidate e quest'ultimo genererà gli script in modo da poter vedere come è stato fatto.

Potresti anche usare i comandi BACKUP e RESTORE.Maggiori dettagli qui: http://msdn.microsoft.com/en-us/library/ms189826.aspx

Se riesci a far sì che DTS o Integration Services si connettano a entrambi i server, puoi utilizzare le procedure guidate per "copiare oggetti" da un server a un altro."Copia database" richiede che i due server possano autenticarsi tra loro, il che in genere significa che si trovano sullo stesso dominio e che il servizio viene eseguito con l'accesso a un dominio.

In caso contrario, è possibile generare uno script per lo schema e utilizzare un pacchetto Integration Services/DTS per esportare i dati in un file e quindi importarli nell'altro.

Ora generalmente usiamo Confronto SQL E Confronto dati SQL.Porta Rossa Programmatore pacchetti SQL potrebbe anche essere un'opzione.

Due cose che un backup/ripristino non farà:

  1. Scendi da un server Microsoft, che faceva parte della domanda originale
  2. Aiutati a trovare rapidamente una differenza strutturale tra due DB che dovrebbero avere la stessa struttura quando uno di essi funziona lentamente.UNIX Diff, o Sdiff, ignorando lo spazio bianco ma richiedono un modo per realizzare file di input.

Se hai bisogno di istruzioni SQL equivalenti come CREATE TABLE...& INSERT INTO..., allora ti consiglio di provare HeidiSQL.È un'utilità fantastica e gratuita che può accedere a Microsoft SQL Server, MySQL e PostgreSQL.Ti consente di sfogliare e modificare dati, creare e modificare tabelle, visualizzazioni, procedure, trigger ed eventi pianificati.Inoltre, puoi esportare struttura e dati in un file SQL.http://www.heidisql.com

Vai su Strumenti/Esporta database come SQL e seleziona lo schema.Seleziona la casella per creare le tabelle e "Inserisci" i dati.Questo è tutto.

Preferisco HeidiSQL a "Microsoft SQL Server Management Studio" o phpMyAdmin...eccetera.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top