web-dev-qa-db-fra.com

copier une base de données dans SQL Server Express?

Je voudrais faire une copie d'une base de données que j'ai mais je la garde sur le même serveur qu'une base de données de test. Cependant, tout ce que j'ai trouvé est d'utiliser l'assistant de copie de base de données (j'utilise MS SQL Server Express). 

Les instructions indiquent toujours: Dans SQL Server Management Studio, dans l'Explorateur d'objets, développez Bases de données, cliquez avec le bouton droit sur une base de données, pointez sur Tâches, puis cliquez sur Copier la base de données. 

Je n'ai pas l'option Copier la base de données. Je cours en tant qu'administrateur, donc je ne sais pas pourquoi il me manque - est-ce quelque chose que je dois installer séparément? Je ne peux pas détacher/attacher car il copie sur le même serveur. J'ai essayé de détacher, de copier le MDF/LDF, de renommer, d'attacher, mais comme vous pouvez l'imaginer, vous avez perdu beaucoup de temps :) Je ne suis pas très doué avec SQL pour tout faire par programme. Existe-t-il un outil que je pourrais utiliser?

45
Jenn

Dans SSMS 2008, vous pouvez le faire:

  1. Créez une sauvegarde de la base de données que vous souhaitez copier

  2. Dans SSMS, cliquez avec le bouton droit de la souris sur "Bases de données" et sélectionnez "Restaurer la base de données".

  3. Sélectionnez la base de données que vous souhaitez copier dans la liste déroulante "Depuis la base de données" de la section "Source pour la restauration".

  4. Entrez le nom de la nouvelle base de données dans le champ "Vers la base de données" de la section "Destination de la restauration". Il ne peut s'agir du nom d'une base de données existante.

  5. Cliquez sur OK

Vous avez terminé! :)

75
Steve Wilkes

Dans SQL Server Express 2012, vous pouvez effectuer les étapes suivantes:

  1. Créez une sauvegarde de la base de données que vous souhaitez copier
  2. faites un clic droit sur "Bases de données" et sélectionnez "Restaurer les fichiers et les groupes de fichiers"
  3. Entrez le nom de la nouvelle base de données dans le champ "Vers la base de données".
  4. Sélectionnez "De l'appareil", puis sélectionnez le fichier que vous avez sauvegardé à la première étape.
  5. cliquez sur OK"

cela "clone" la base de données avec les paramètres de table corrects tels que la "valeur par défaut" et "augmentation automatique" etc.

47
rekinyz

La base de données SQL Express a un bouton d'exportation, je viens d'exporter la base de données vers une nouvelle base de données sur le même serveur, il copie la base de données. Faites un clic droit sur le nom de la base de données.

8
DmitriySidyakin

Suivez ces étapes pour créer une copie de la base de données dans SQL Express.

  1. Arrêtez SQL
  2. Copiez le fichier mdf, ldf et tout autre fichier de la base de données vers un nouvel emplacement (assurez-vous d’obtenir le fichier journal).
  3. Changer le nom de chaque fichier copié
  4. Démarrer SQL 
  5. Cliquez avec le bouton droit sur Base de données dans SSMQ et sélectionnez attacher.
  6. Assurez-vous de changer le nom dans la colonne "Joindre en tant que"
  7. Mettez à jour l'emplacement du fichier dans le volet inférieur de "Détails de la base de données" avec l'emplacement de vos fichiers copiés (en particulier ce fichier journal).

J'ai pu copier une base de données sur mon système SQL Express avec cette méthode.

alt text

3
RC_Cleland

J'ai également rencontré un problème lors de la création d'une copie de ma base de données à l'aide de SQL Express 2012 . Je l'ai résolu par la méthode de sauvegarde et de restauration. Après la sauvegarde, j’ai utilisé: restaurer -> fichiers et groupes de fichiers  choosing restore option

La prochaine étape consistait à écrire un nouveau nom pour la nouvelle base de données et à définir la source:

 set source and named new database

Pointant le fichier source

 choosing backup file

et enfin, un écrasement de la base de données existante avec l'option replace doit être sélectionné et la définition des noms des nouveaux fichiers d'extension mdf et ldf qui sont différents de l'emplacement existant

 set new names for mdf and ldf files

Cette méthode a fonctionné pour moi

2
Kiril Dobrev

Sachez que si vous utilisez SQL Server Express 2012, accédez à l'option Fichiers et assurez-vous que les fichiers de destination (colonne Restaurer sous) sont différents des fichiers d'origine * .mdf et * .log.

(J'ai essayé de mettre une image mais j'ai besoin de 10 points de réputation: p)

2
valdessir

La solution est bien de créer une sauvegarde et de la restaurer, mais assurez-vous que la copie restaurée pointe vers différents fichiers .mdf et .ldf.

Voici comment vérifier que, à l'aide de SSMS 2014 et d'une installation de SQL Server 12: si vous créez et restaurez des sauvegardes sur votre disque local.

  • Créez une sauvegarde de votre base de données existante
    • Cliquez avec le bouton droit sur la base de données, puis choisissez "sauvegarder ..." sous "tâches". 
    • (Si vous laissez l'emplacement par défaut, vous ne serez pas obligé de rechercher la sauvegarde à l'étape suivante lors de la restauration.)
  • Restaurez votre sauvegarde dans une NOUVELLE base de données:
    • Faites un clic droit sur les bases de données, choisissez "restaurer la base de données"
    • Choisir un appareil"
    • Cliquez sur le bouton Ellipsis ("...") pour ouvrir la boîte de dialogue "Sélection des périphériques de sauvegarde".
    • Choisissez "Fichier" comme type de support de sauvegarde et cliquez sur le bouton "ajouter"
    • Sélectionnez la sauvegarde que vous venez de faire, cliquez sur ok (deux fois).
    • Maintenant, dans la boîte de dialogue "restaurer la base de données", tapez un nouveau nom pour votre base de données de destination.
    • Cliquez sur "fichiers" sous "sélectionner une page" et assurez-vous que "restaurer en tant que" pointe vers des noms de fichiers .mdf et .ldf qui n'existent pas déjà. 
    • Cliquez sur OK!
1
Rose

Je viens de penser à un moyen vraiment astucieux de contourner cela :) Alors j'ai pensé que je devrais poster mon idée. Notez que ceci est "non testé" mais je pense que cela fonctionnera.

  1. Faites une base de données "Back Up ..." (théoriquement, cela se trouve sur votre serveur de production , Mais ce n'est pas obligatoire) 
  2. Copiez le fichier de sauvegarde (de votre serveur de production) sur votre machine de développement.
  3. En supposant que vous utilisiez SSMS Developer Edition sur votre machine de développement , Vous pouvez ensuite effectuer une "Restauration" sur votre machine de développement, créer une nouvelle copie de la base de données)
  4. Maintenant, faites une "Sauvegarde ..." sur la nouvelle base de données que vous venez de créer, copiez le fichier de sauvegarde (sur votre serveur de production) et effectuez une "Restauration" sur le serveur express du serveur SQL :)

J'espère que cela aide quelques personnes :)

À votre santé,

Jeff

1
Jeff Moretti

Je ne crois pas que la version Express du gestionnaire disposera de la fonctionnalité de copie de base de données. Avez-vous envisagé de copier via la méthode de sauvegarde et de restauration?

http://msdn.Microsoft.com/en-us/library/ms190436.aspx

1
johnny

Je pense que vous pouvez essayer d'importer des données dans une nouvelle base de données.

  1. Créer une base de données vide sur votre serveur SQL local
  2. Faites un clic droit sur la nouvelle base de données -> tâches -> importer des données
  3. Dans l'Assistant Importation et exportation SQL Server, sélectionnez le nom de serveur du env du produit comme source de données. Et sélectionnez votre nouvelle base de données en tant que données de destination.
0
maoyang

Essayez de faire une sauvegarde de votre base de données et de la restaurer dans une toute nouvelle base de données.

  • Créer une nouvelle base de données. 
  • Faites une sauvegarde complète de votre original.
  • Faites un clic droit sur votre nouvelle base de données, cliquez sur restaurer.
  • Accédez à votre .BAK et assurez-vous que les formats .mdf et .ldf correspondent aux nouveaux.
0
p.campbell