Comment vider une base de données Microsoft SQL Server dans un script SQL?


125

Est-il possible d'exporter une base de données Microsoft SQL Server vers un script SQL?

Je cherche quelque chose qui se comporte de la même manière que mysqldump, prenant un nom de base de données et produisant un script unique qui recréera toutes les tables, procédures stockées, réinsérera toutes les données, etc.

J'ai vu http://vyaskn.tripod.com/code.htm#inserts , mais je souhaite idéalement quelque chose pour tout recréer (pas seulement les données) qui fonctionne en une seule étape pour produire le script final.


@ Matt Oui, il n'exporte pas les données. C'est pourquoi j'ai mentionné que vous devriez le combiner avec le script que vous avez suggéré. Cette méthode construit cependant un script dans le bon ordre.
Julio César

En fait, dans Mangement Studio 2008, il vous suffit d'activer l'option "export data", et le script contiendra à la fois des instructions schema et insert.
user24161


@ MattSheppard, veuillez accepter l'une des réponses
030

Réponses:


111

Dans SQL Server Management Studio, cliquez avec le bouton droit de la souris sur votre base de données et sélectionnez Tâches / Générer des scripts. Suivez l'assistant et vous obtiendrez un script qui recrée la structure de données dans le bon ordre en fonction des clés étrangères. Dans l'étape de l'assistant intitulée "Définir les options de script", choisissez "Avancé" et définissez l'option "Types de données dans un script" sur "Schéma et données".

CONSEIL: lors de la dernière étape, sélectionnez "Script dans une nouvelle fenêtre de requête", cela fonctionnera beaucoup plus rapidement.


18
Rappelez-vous juste d'aller dans les options avancées et de le dire au script non seulement le schéma, mais aussi les données.
RomanSt

2
@romkyns mérite tous les votes positifs! "Types de données à écrire" est le nom exact de l'option. Vous voudrez sélectionner "Schéma et données".
Solidau

2
Le problème principal avec les scripts générés à partir de SSMS est qu'ils ne sont pas ordonnés correctement pour prendre en compte les dépendances. Ce n'est pas un problème pour les petites bases de données où vous pouvez le faire manuellement, mais c'est certainement un problème lorsque la base de données contient plus de 50 objets. Jusqu'ici, nous avons utilisé avec succès ApexSQL Script pour cela. C'est un outil premium mais vous pouvez l'utiliser en mode d'évaluation pour faire le travail. Je pense que Red Gate a également un outil similaire.
David Smithers

34

Essayez l' assistant de publication de base de données SQL Server . Il se peut que vous deviez ré-ordonner le script pour le faire fonctionner en une seule fois, mais en raison de dépendances, mais il inclura votre schéma et vos données.

Si vous n'avez pas installé d'objets SQL XMO 2005, vous obtiendrez une erreur lors de l'exécution de l'Assistant . Vous voulez la collection d'objets de gestion Microsoft SQL Server 2005


5
En réalité, vous n'avez pas besoin de réorganiser le script, car il supprime toutes les contraintes, crée le schéma, insère les données et, finalement, recrée les contraintes.
Daniel Silveira

Génial, c'est plutôt chouette
Bip bip

C’est un excellent outil qui ne prend en charge que SQL Server 2015. Que diriez-vous de 2008 et plus tard?
Nam G VU

12

J'ai trouvé SQL Dumper très utile. C'est gratuit pour que vous puissiez l'essayer. Il vous permet de choisir les tables et les colonnes de la base de données, les vues et même les résultats de requêtes personnalisées sous forme d'instructions d'insertion SQL.


La dernière version stable ne fonctionne pas avec les procédures stockées.
VMAtm

1
La dernière version peut être téléchargée à l'
adresse

7

Ne trouvant pas le bon outil, j'ai décidé de créer le mien: un utilitaire de ligne de commande sqlserverdump. Découvrez-le sur http://sqlserverdump.codeplex.com/ . Il va recréer le schéma et les données en une seule étape.


6

Essayez DBSourceTools . Il est conçu pour scripter une base de données source et le redéployer dans une base de données cible. Il écrit des schémas et des données.


6

La solution recommandée ne fonctionne que sur les SQL 2000 et 2005. Si vous envisagez de le faire sur SQL 2008,

Vous pouvez le faire avec SQL 2008 sans aucun autre plug-in. Faites un clic droit sur la base de données et sélectionnez "Tâches -> Générer des scripts ...". Sélectionnez la base de données et ce que vous voulez sauvegarder. Cliquez sur Suivant et définissez les "Données de script" sur true.

Documentation complémentaire sur le lien:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- procédure-stockée-fonctions-déclencheurs-tables-vues-contraintes-et-tous-autres-objets-base-données /



2

L’assistant de publication de base de données SQL Server semble en effet être le meilleur moyen de le faire. Le problème avec ceci est qu'il ne semble pas fonctionner sous Windows 7. J'ai dû utiliser mon ancien ordinateur pour l'utiliser. Sur le plan positif, cela fonctionne avec les anciennes versions de SQL Server comme 2000.

Pour les versions plus récentes de SQL et les systèmes d'exploitation, il est peut-être intéressant de se pencher sur ce logiciel: http://sqlbackupandftp.com/


0

Ombelt est un bon outil pour exporter des bases de données de serveur MS SQL. www.ombelt.com

un peu comme les installations de vidage d'autres DB.

Travaille pour moi.


0

Vérifiez le projet de vidage de schéma Microsoft SQL Server ( mssql-schema-dumpoutil sur GitHub ).

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

L'exportation prend en charge:

  • Base de données: schéma, types d'utilisateur, types de table utilisateur, déclencheurs, catalogues de texte intégral, listes d'arrêt complètes de texte, procédures stockées, fonctions
  • DB.Tables: Schéma, déclencheurs, index, DRI, statistiques
  • DB.Views: Schéma, déclencheurs, index, DRI, statistiques
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.