Come scaricare un database Microsoft SQL Server su uno script SQL?


125

Esiste un modo per esportare un database Microsoft SQL Server in uno script sql?

Sto cercando qualcosa che si comporta in modo simile a mysqldump, prendendo un nome di database e producendo un singolo script che ricrea tutte le tabelle, le procedure memorizzate, reinserisce tutti i dati ecc.

Ho visto http://vyaskn.tripod.com/code.htm#inserts , ma idealmente voglio qualcosa per ricreare tutto (non solo i dati) che funziona in un unico passaggio per produrre lo script finale.


@Matt Sì, non esporta i dati. Ecco perché ho detto che dovresti combinarlo con lo script che hai suggerito. Questo metodo crea comunque uno script nell'ordine corretto.
Julio César,

In realtà, in Mangement Studio 2008, devi solo attivare l'opzione "esporta dati" e lo script conterrà sia le istruzioni di schema che quelle di inserimento.
user24161


@MattSheppard, considera di accettare una delle risposte
030,

Risposte:


111

In SQL Server Management Studio fare clic con il pulsante destro del mouse sul database e selezionare Attività / Genera script. Segui la procedura guidata e otterrai uno script che ricrea la struttura dei dati nell'ordine corretto in base alle chiavi esterne. Nel passaggio della procedura guidata intitolato "Imposta opzioni di scripting" scegli "Avanzate" e modifica l'opzione "Tipi di dati da script" in "Schema e dati"

SUGGERIMENTO: nel passaggio finale selezionare "Script in una nuova finestra di query", funzionerà molto più velocemente in questo modo.


18
Ricorda solo di andare nelle opzioni avanzate e di dirlo allo script non solo lo schema, ma anche i dati.
Roman,

2
@romkyns merita tutti i voti positivi! "Tipi di dati da scrivere" è il nome esatto dell'opzione. Dovrai selezionare "Schema e dati".
solidau,

2
Il problema principale con gli script generati da SSMS è che non sono stati ordinati correttamente per tenere conto delle dipendenze. Questo non è un problema per i piccoli database in cui è possibile farlo manualmente ma è sicuramente un problema quando il database supera i 50 oggetti. Finora abbiamo usato con successo ApexSQL Script per questo. È uno strumento premium ma puoi usarlo in modalità di prova per completare il lavoro. Penso che anche Red Gate abbia uno strumento simile.
David Smithers,

34

Prova la Pubblicazione guidata database SQL Server . Potrebbe essere necessario riordinare lo script per eseguirlo in un colpo solo a causa delle dipendenze, ma includerà lo schema e i dati.

Se non hai installato oggetti SQL XMO 2005, visualizzerai un errore quando esegui la procedura guidata . Ti consigliamo la raccolta di oggetti di gestione di Microsoft SQL Server 2005


5
In realtà, non è necessario riordinare lo script, poiché elimina tutti i vincoli, crea lo schema, inserisce i dati e, infine, ricrea i vincoli.
Daniel Silveira,

Fantastico, è abbastanza pulito
Beep beep

Questo è uno strumento eccezionale che supporta solo SQL Server 2015. Che ne pensi del 2008 e dei successivi?
Nam G VU,



6

Prova DBSourceTools . È progettato per eseguire lo scripting di un database di origine e ridistribuirlo in un database di destinazione. Scrive schema e dati.


6

La soluzione consigliata funziona solo su sql 2000 e 2005. Se stai cercando di farlo su SQL 2008,

Puoi farlo con SQL 2008 senza altri plug-in. Fare clic destro sul database e selezionare "Attività -> Genera script ...". Selezionare il database e ciò di cui si desidera eseguire il backup. Fare clic su Avanti e impostare "Dati script" su true.

Ulteriore documentazione al link:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- stored-procedure-funzioni-trigger-tavoli-views-vincoli e-all-altro-database-oggetti /



2

La procedura guidata per la pubblicazione di database di SQL Server sembra davvero essere il modo migliore per farlo. Il problema con questo è che non sembra funzionare su Windows 7. Ho dovuto usare il mio vecchio computer per usarlo. Sul lato positivo, funziona con versioni precedenti di SQL Server come 2000.

Per le versioni e i sistemi operativi SQL più recenti, vale la pena esaminare questo software: http://sqlbackupandftp.com/


0

Ombelt è un ottimo strumento per esportare i DB del server MS SQL. www.ombelt.com

molto simile alle altre strutture di dump di DB.

Per me va bene.


0

Controllare il progetto Dump dello schema di Microsoft SQL Server ( mssql-schema-dumpstrumento su GitHub ).

Uso: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

L'esportazione supporta:

  • DB: schema, tipi di utente, tipi di tabella utente, trigger, cataloghi full-text, elenchi di stop full-text, stored procedure, funzioni
  • DB.Tables: Schema, Trigger, Indexes, DRI, Statistics
  • DB.Views: Schema, Trigger, Indexes, DRI, Statistics
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.