web-dev-qa-db-fra.com

Comment obtenir un script de données SQL Server?

Je cherche un moyen de faire quelque chose d'analogue au vidage MySQL de SQL Server. Je dois pouvoir choisir les tables et exporter le schéma et les données (ou je peux exporter le schéma via SQL Server Management Studio et exporter les données séparément d'une manière ou d'une autre).

J'ai besoin de ces données pour pouvoir me retourner et retourner dans SQL Server. Il doit donc conserver des GUID/identificateurs uniques et d'autres types de colonnes.

Est-ce que quelqu'un connaît un bon outil pour cela?

211
Jared

Juste pour être complet, j’ai également trouvé le moyen de le faire: Assistant de publication de base de données Microsoft SqlServer

5
Jared

À partir de SQL Server Management Studio, vous pouvez cliquer avec le bouton droit de la souris sur votre base de données et sélectionner:

Tasks -> Generate Scripts

Ensuite, suivez simplement les étapes de l'assistant. Assurez-vous de définir "Données du script" sur VRAI lorsque vous êtes invité à choisir les options de script.

SQL Server 2008 R2

alt text

Lectures complémentaires:

324
Daniel Vassallo

SQL Server Management Studio

C'est votre meilleur outil pour effectuer cette tâche. Vous pouvez générer un script qui générera les tables souhaitées à partir d'une base de données et y insérera les données (pour autant que je sache, vous devez exporter toutes les données des tables sélectionnées).

Pour le faire, suivez ces étapes:

  1. Cliquez avec le bouton droit sur votre base de données et sélectionnez Tâches> Générer des scripts.

  2. Dans l'assistant de génération et de publication de scripts, sélectionnez l'option "Sélectionner des objets de base de données spécifiques".

  3. Développez l'arborescence "Tables" et sélectionnez toutes les tables pour lesquelles vous souhaitez exporter le schéma et les données, puis cliquez sur Suivant.

  4. Dans l'écran suivant, choisissez comment vous souhaitez enregistrer le script (le type de sortie doit rester défini sur "Enregistrer les scripts dans un emplacement spécifique"), puis cliquez sur le bouton Avancé situé dans le coin supérieur droit.

  5. Dans la fenêtre nouvellement ouverte, sous la section Général se trouve un paramètre appelé "Types de données dans un script", définissez-le sur "Schéma et données" et cliquez sur OK.

  6. Cliquez sur Suivant, vérifiez le résumé de l'exportation, puis cliquez à nouveau sur Suivant. Cela générera le script à la destination sélectionnée.

Pour restaurer votre base de données, créez simplement une nouvelle base de données et modifiez la première ligne de votre script généré en USE [Your.New.Database.Name], puis exécutez-la. Votre nouvelle base de données contiendra désormais toutes les tables et données sélectionnées dans la base de données d'origine.

54
bluntfakie

J'ai eu énormément de mal à trouver cette option dans SQL Management Studio 2012, mais je l'ai finalement trouvée. L'option est masquée dans le bouton Avancé de l'écran ci-dessous.

J'ai toujours supposé que cela contenait simplement des options avancées pour la génération de fichiers, car c'est ce qui se trouve à côté, mais il s'avère que quelqu'un de la SP est vraiment très mauvais en conception d'interface utilisateur dans ce cas. HTH quelqu'un qui vient sur ce fil comme moi.

SQL Management Studio 2012

38
SilverSideDown

Si vous souhaitez créer un script pour toutes les lignes de la table, utilisez Générer des scripts comme décrit par Daniel Vassallo. Vous ne pouvez pas vous tromper ici

Sinon, utilisez des outils tiers tels que ApexSQL Script ou SSMS Toolpack pour des scripts plus avancés comprenant du prétraitement, des scripts sélectifs, etc.

24
Maisie John

Départ SSMS Tool Pack . Cela fonctionne dans Management Studio 2005 et 2008. Il existe une option pour générer des instructions d'insertion que j'ai trouvées utiles pour déplacer de petites quantités de données d'un système à un autre.

Avec cette option, vous devrez créer un script pour la DDL séparément.

7
CTKeane

SqlPubWiz.exe (pour moi, c'est dans C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Publishing\1.2>)

Exécutez-le sans arguments pour un assistant. Donnez-lui des arguments à exécuter sur la ligne de commande.

SqlPubWiz.exe script -C "<ConnectionString>" <OutputFile>
5
Greg

Je sais que cela a déjà été répondu, mais je suis ici pour offrir un mot d'avertissement. Nous avons récemment reçu une base de données d'un client contenant une référence de clé étrangère cyclique. Le générateur de script SQL Server refuse de générer les données pour les bases de données avec des références cycliques.

1
Vaelen

BCP peut transférer vos données dans un fichier. Dans SQL Server Management Studio, cliquez avec le bouton droit de la souris sur la table et sélectionnez "table de script en tant que", puis "créer dans", puis "fichier ...". Un script de table complet sera alors généré.

BCP info
https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/datacenter/?p=319
http://msdn.Microsoft.com/en-us/library/aa174646%28SQL.80%29.aspx

1
KM.