Copier et renommer db afin que je puisse joindre les deux copies

12

J'ai un db appelé 'mysite_db' sur un serveur et j'ai créé une copie sur ma machine locale qui est aussi 'mysite_db'. Je voudrais attacher la base de données (de ma machine locale) au serveur qui a déjà ce nom de base de données. Cela signifie que je dois changer le nom de ma base de données locale (je suppose que je dois également changer le fichier physique). Je ne sais plus comment faire ça. Pouvez-vous me guider s'il vous plaît?

Mon objectif est de charger les 2 bases de données sur le serveur par exemple: 'mysite_db' et 'myNewSite_db'

wibeasley
la source

Réponses:

16

Si vous souhaitez utiliser le même répertoire pour vos fichiers mdf \ ldf, vous devrez les renommer (physiquement).
1. Détachez les fichiers du PC local
2. Renommez les fichiers mdf et ldf
3. Copiez \ Déplacez les fichiers vers le répertoire du serveur où la base de données d'origine est stockée.
(Dans mon exemple, j'ai utilisé D: \ Data pour mdf et E: \ Logs pour ldf, changez le chemin avant d'exécuter le script)
4. Utilisez ce code:

USE [master]
GO
CREATE DATABASE [myNewSite_db] ON 
( FILENAME = N'D:\Data\myNewSite_db.mdf' ),
( FILENAME = N'E:\Logs\myNewSite_db_log.ldf' )
FOR ATTACH
GO

5. Si vous souhaitez modifier le nom du fichier logique pour qu'il soit identique à celui du fichier physique, utilisez:
(en supposant que le nom du fichier logique d'origine était "mysite_db")

USE [myNewSite_db]
GO
ALTER DATABASE [myNewSite_db] 
    MODIFY FILE (NAME=N'mysite_db', NEWNAME=N'myNewSite_db')
GO
ALTER DATABASE [myNewSite_db] 
    MODIFY FILE (NAME=N'mysite_db_log', NEWNAME=N'myNewSite_db_log')
GO

Bonne chance,
Roi

Roi Gavish
la source
agréable, a fonctionné pour moi. or pur.
TugboatCaptain
6

Lorsque vous attachez la base de données, donnez-lui le nom "myNewSite_db"

entrez la description de l'image ici

Si vous enregistrez le fichier dans un répertoire différent, vous n'avez même pas besoin de changer le nom du fichier.

Scott Chamberlain
la source