Importer / exporter une base de données avec SQL Server Server Management Studio

197

Je pensais que ce serait trivial, mais ce n'est pas le cas ... Je suis sûr qu'il existe un moyen simple de le faire, mais je n'arrive pas à le trouver. Honte sur moi.

Je souhaite importer / exporter la base de données elle-même, les tables, les contraintes (clés étrangères, etc.). Je préfère ne pas obtenir les données avec, mais je peux m'en débarrasser après s'il n'y a pas d'autre moyen.

Alors ... comment exporter une base de données à l'aide de MS SQL Server Management Studio? Comment l'importez-vous?

La seule solution que j'ai trouvée était un clic droit sur les tables et le "script à créer", mais j'ai quelque chose comme 100 tables, donc je préfère éviter cela.

Merci!

marcgg
la source

Réponses:

316

Cliquez avec le bouton droit sur la base de données elle-même, Tâches -> Générer des scripts ...

Suivez ensuite l'assistant.

Pour SSMS2008 +, si vous souhaitez également exporter les données, à l'étape "Définir les options de script", sélectionnez le bouton "Avancé" et modifiez "Types de données à script" de "Schéma uniquement" à "Données uniquement" ou "Schéma et Les données".

Brandon
la source
11
que diriez-vous d'obtenir les données? est-il possible de créer des requêtes d'insertion avec une méthode comme générer un script?
Kubi
50
@Kubi, à l'étape "Définir les options de script", sélectionnez le bouton "Avancé" et changez "Schéma uniquement" en "Données uniquement" ou "Schéma et données".
Brandon
25
@Brandon, merci pour cela. La raison pour laquelle "schéma uniquement", "données uniquement" ou "schéma et données" est considéré comme une option "avancée" est au-delà de ma compréhension.
Brian Hooper
2
2Brandon: les options de script "avancées" ne sont disponibles que dans SSMS 2008+.
ivan_pozdeev
2
"Données uniquement" ou "Schéma et données" créent des commandes INSERT qui dupliquent les noms d'en-tête pour chaque ligne. Le fichier représente environ le double de la taille d'une version texte des données. On pourrait plutôt essayer d'exporter le schéma uniquement, puis utiliser BULK INSERT pour charger un fichier csv créé avec l'assistant d'exportation .... Attention, MSQL ne sait pas lire les champs entre guillemets.
John Mark
23

Une autre solution est - Sauvegarde et restauration de la base de données

Sauvegarder la base de données système

Pour sauvegarder la base de données système à l'aide de Microsoft SQL Server Management Studio Express, procédez comme suit:

  1. Téléchargez et installez Microsoft SQL Server 2008 Management Studio Express à partir du site Web de Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=7593

  2. Une fois Microsoft SQL Server Management Studio Express installé, lancez l'application pour vous connecter à la base de données système. La boîte de dialogue "Se connecter au serveur" s'affiche. Dans le champ "Nom du serveur:", entrez le nom du serveur Webtrends sur lequel la base de données système est installée. Dans le champ "Authentification:", sélectionnez "Authentification Windows" si vous êtes connecté à la machine Windows à l'aide du compte de service Webtrends ou d'un compte avec des droits pour apporter des modifications à la base de données système. Sinon, sélectionnez "Authentification SQL Server" dans le menu déroulant et entrez les informations d'identification pour un compte SQL Server disposant des droits nécessaires. Cliquez sur "Connect" pour vous connecter à la base de données.

  3. Développez "Bases de données", faites un clic droit sur "wt_sched" et sélectionnez "Tâches"> "Sauvegarder ..." dans le menu contextuel. La boîte de dialogue "Sauvegarder la base de données" s'affiche. Dans la section "Source", assurez-vous que "wt_sched" est sélectionné pour la "Base de données:" et que "Type de sauvegarde:" est "Complet". Sous "Jeu de sauvegarde", indiquez un nom, une description et une date d'expiration au besoin, puis sélectionnez "Ajouter ..." dans la section "Destination" et indiquez le nom de fichier et le chemin où la sauvegarde sera enregistrée. Il peut être nécessaire de sélectionner l'option "Remplacer tous les jeux de sauvegarde existants" dans la section Options si une sauvegarde existe déjà et doit être remplacée.
  4. Sélectionnez "OK" pour terminer le processus de sauvegarde.

  5. Répétez les étapes ci-dessus pour la partie "wtMaster" de la base de données.

Restaurer la base de données système

Pour restaurer la base de données système à l'aide de Microsoft SQL Server Management Studio, procédez comme suit:

  1. Si ce n'est pas déjà fait, téléchargez et installez Microsoft SQL Server 2008 Management Studio Express à partir du site Web de Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=7593

  2. Une fois Microsoft SQL Server Management Studio installé, lancez l'application pour vous connecter à la base de données système. La boîte de dialogue "Se connecter au serveur" s'affiche. Dans le champ "Type de serveur:", sélectionnez "Moteur de base de données" (par défaut). Dans le champ "Nom du serveur:", sélectionnez "\ WTSYSTEMDB" où est le nom du serveur Webtrends où se trouve la base de données. WTSYSTEMDB est le nom de l'instance de base de données dans une installation par défaut. Dans le champ "Authentification:", sélectionnez "Authentification Windows" si vous êtes connecté à la machine Windows à l'aide du compte de service Webtrends ou d'un compte avec des droits pour apporter des modifications à la base de données système. Sinon, sélectionnez "Authentification SQL Server" dans le menu déroulant et entrez les informations d'identification pour un compte SQL Server disposant des droits nécessaires. Cliquez sur "Connect" pour vous connecter à la base de données.

  3. Développez "Bases de données", faites un clic droit sur "wt_sched" et sélectionnez "Supprimer" dans le menu contextuel. Assurez-vous que la case à cocher «Supprimer les informations de sauvegarde et de restauration de l'historique des bases de données» est cochée.

  4. Sélectionnez "OK" pour terminer le processus de suppression.

  5. Répétez les étapes ci-dessus pour la partie "wtMaster" de la base de données.

  6. Faites un clic droit sur "Bases de données" et sélectionnez "Restaurer la base de données ..." dans le menu contextuel. Dans le champ "To database:", saisissez "wt_sched". Sélectionnez le bouton radio "De l'appareil:". Cliquez sur l'ellipse (...) à droite du champ de texte "De l'appareil:". Cliquez sur le bouton "Ajouter". Naviguez et sélectionnez le fichier de sauvegarde pour "wt_sched". Sélectionnez "OK" sur le formulaire "Localiser le fichier de sauvegarde". Sélectionnez "OK" sur le formulaire "Spécifier la sauvegarde". Cochez la case dans la colonne de restauration à côté de "wt_sched-Full Database Backup". Sélectionnez "OK" sur le formulaire "Restaurer la base de données".

  7. Répétez l'étape 6 pour la partie "wtMaster" de la base de données.

Courtoisie - http://kb.webtrends.com/articles/How_To/Backing-Up-and-Restoring-the-System-Database-using-MS-SQL-Management-Studio

Rohit Suthar
la source
1
Le problème que j'ai rencontré avec cette approche est que le fichier bak ne se comporte pas correctement lors de la restauration sur un autre ordinateur. Parfois cela fonctionne, parfois non. Au moins pour moi, le script est une approche plus sûre. +1 pour l'explication détaillée
Nunser
1
De plus, cela nécessite des privilèges système, que souvent si vous développez sur une infrastructure de services partagés, vous n'en avez pas. bravo Microsoft.
matao
3

Je voulais partager avec vous ma solution pour exporter une base de données avec Microsoft SQL Server Management Studio.

Pour exporter votre base de données

  1. Ouvrir une nouvelle demande
  2. Copiez collez ce script

    SET @BackupFile = 'D: \ database-backup.bak'

    --PRINT @BackupFile

    BASE DE DONNÉES DE SAUVEGARDE [% databaseName%]

    TO DISK = @BackupFile

N'oubliez pas de remplacer% databaseName% par le nom de la base de données que vous souhaitez exporter.

Notez que cette méthode donne un fichier plus clair que dans le menu.

Pour importer ce fichier à partir de SQL Server Management Studio. N'oubliez pas de supprimer votre base de données au préalable.

  1. Cliquez sur restaurer la base de données

Cliquez sur restaurer la base de données

  1. Ajoutez le fichier de sauvegarde Ajoutez le fichier de sauvegarde

  2. Valider

Prendre plaisir! :) :)

Daniel
la source
2
enfin une solution de capture d'écran! :)
Reven
2

pour Microsoft SQL Server Management Studio 2012,2008 .. Copiez d'abord votre fichier de base de données .mdf et votre fichier journal .ldf et collez-le dans le fichier d'installation de votre serveur sql dans Programmes Files-> Microsoft SQL Server-> MSSQL10.SQLEXPRESS-> MSSQL-> DATA . Ouvrez ensuite Microsoft Sql Server. Cliquez avec le bouton droit sur les bases de données -> Sélectionnez l'option Attacher ....

Lalit
la source
J'ai essayé cette méthode et cela a fonctionné. Copié database.mdf et database_log.ldf à partir du dossier mentionné ci-dessus (SQL 2012), puis transféré ces 2 fichiers vers un nouveau serveur avec une version différente (SQL Express 2014) de SQL Management Studio.
Vignesh Chinnaiyan
0

J'ai essayé les réponses ci-dessus mais le fichier de script généré était très volumineux et j'avais des problèmes lors de l'importation des données. J'ai fini par détacher la base de données, puis en copiant .mdf sur ma nouvelle machine, puis en l'attachant à ma nouvelle version de SQL Server Management Studio.

J'ai trouvé des instructions sur la façon de procéder sur le site Web de Microsoft:
https://msdn.microsoft.com/en-us/library/ms187858.aspx

REMARQUE: après avoir détaché la base de données, j'ai trouvé le fichier .mdf dans ce répertoire:
C: \ Program Files \ Microsoft SQL Server \

Colin
la source