J'ai un système MS SQL Server 2008 Express qui contient une base de données que je voudrais «copier et renommer» (à des fins de test) mais je ne connais pas de moyen simple d'y parvenir.
Je remarque que dans la version R2 de SQL Server, il existe un assistant de copie de base de données, mais malheureusement, je ne peux pas mettre à niveau.
La base de données en question tourne autour d'un concert. J'ai tenté de restaurer une sauvegarde de la base de données que je souhaite copier dans une nouvelle base de données, mais sans succès.
Réponses:
Installez Microsoft SQL Management Studio, que vous pouvez télécharger gratuitement sur le site Web de Microsoft:
Version 2008
Microsoft SQL Management Studio 2008 fait partie de SQL Server 2008 Express avec Advanced Services
Version 2012
Cliquez sur le bouton de téléchargement et vérifiez
ENU\x64\SQLManagementStudio_x64_ENU.exe
Version 2014
Cliquez sur le bouton de téléchargement et vérifiez MgmtStudio
64BIT\SQLManagementStudio_x64_ENU.exe
Ouvrez Microsoft SQL Management Studio .
la source
Cliquez avec le bouton droit sur la base de données à cloner, cliquez sur
Tasks
, cliquez surCopy Database...
. Suivez l'assistant et vous avez terminé.la source
Vous pouvez essayer de détacher la base de données, copier les fichiers sous de nouveaux noms à l'invite de commandes, puis attacher les deux bases de données.
En SQL:
À l'invite de commande (j'ai simplifié les chemins d'accès aux fichiers pour cet exemple):
En SQL à nouveau:
la source
select * from OriginalDB.sys.sysfiles
pour trouver l'emplacement des fichiers de la base de données.Permission denied
on au.mdf
dossier. Je n'en ai pas besoin maintenant, j'avais juste besoin d'une sauvegarde de la base de données d'origine, donc je peux écraser la base de données d'origine plus tard, je suis juste curieux de savoir pourquoi j'obtiens une telle erreur.exec sp_helpdb @dbname='TEMPDB';
Il s'avère que j'avais tenté de restaurer à partir d'une sauvegarde de manière incorrecte.
Au départ, j'ai créé une nouvelle base de données, puis j'ai tenté de restaurer la sauvegarde ici. Ce que j'aurais dû faire, et ce qui a finalement fonctionné, était d'afficher la boîte de dialogue de restauration et de taper le nom de la nouvelle base de données dans le champ de destination.
Donc, en bref, la restauration à partir d'une sauvegarde a fait l'affaire.
Merci pour tous les commentaires et suggestions les gars
la source
Ceci est le script que j'utilise. Un peu délicat mais ça marche. Testé sur SQL Server 2012.
la source
SET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)
une variable distincte pour @sourceDb_data avec une requête similaire (en la remplaçantfiles.type=0
). HTH!Aucune des solutions mentionnées ici n'a fonctionné pour moi - j'utilise SQL Server Management Studio 2014.
Au lieu de cela, j'ai dû décocher la case "Prendre la sauvegarde du journal de queue avant la restauration" dans l'écran "Options": dans ma version, elle est cochée par défaut et empêche l'opération de restauration d'être terminée. Après l'avoir décochée, l'opération de restauration s'est déroulée sans problème.
la source
À l'aide de MS SQL Server 2012, vous devez effectuer 3 étapes de base:
Tout d'abord, générez un
.sql
fichier contenant uniquement la structure de la base de données source.sql
fichier localementEnsuite, remplacez la base de données source par celle de destination dans le
.sql
fichierEnfin, remplissez de données
Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
Vous avez terminé.
la source
Dans SQL Server 2008 R2, sauvegardez la base de données sous forme de fichier dans un dossier. Choisissez ensuite l'option de restauration qui apparaît dans le dossier "Base de données". Dans l'assistant, entrez le nouveau nom que vous souhaitez dans la base de données cible. Et choisissez restaurer le fichier frrom et utilisez le fichier que vous venez de créer. Je l'ai fait et c'était très rapide (ma DB était petite, mais quand même) Pablo.
la source
Si la base de données n'est pas très grande, vous pouvez consulter les commandes «Script Database» dans SQL Server Management Studio Express, qui se trouvent dans un menu contextuel de l'élément de base de données lui-même dans l'explorateur.
Vous pouvez choisir ce que tout le script; vous voulez les objets et les données, bien sûr. Vous enregistrerez ensuite l'intégralité du script dans un seul fichier. Ensuite, vous pouvez utiliser ce fichier pour recréer la base de données; assurez-vous simplement que la
USE
commande en haut est définie sur la base de données appropriée.la source
La solution, basée sur ce commentaire: https://stackoverflow.com/a/22409447/2399045 . Définissez simplement les paramètres: nom de la base de données, dossier temporaire, dossier des fichiers db. Et après l'exécution, vous aurez la copie de la base de données avec le nom au format "sourceDBName_yyyy-mm-dd".
la source
Script basé sur la réponse de Joe ( détacher, copier des fichiers, joindre les deux ).
Ce n'est pas nécessaire, mais peut-être que l'accès a été refusé lors de l'exécution.
@dbName
et@copyDBName
variables avant.la source
Vous pouvez simplement créer une nouvelle base de données, puis accéder aux tâches, importer des données et importer toutes les données de la base de données que vous souhaitez dupliquer dans la base de données que vous venez de créer.
la source
Une autre façon de faire l'affaire en utilisant l'assistant d'importation / exportation , créez d'abord une base de données vide, puis choisissez la source qui est votre serveur avec la base de données source, puis dans la destination, choisissez le même serveur avec la base de données de destination (en utilisant la base de données vide vous avez créé au début), puis appuyez sur terminer
Il va créer toutes les tables et transférer toutes les données dans la nouvelle base de données,
la source