12

I have a db called 'mysite_db' on a server and I have created a copy on my local machine which is also 'mysite_db'. I would like to attach the db (from my local machine) to the server which already has this db name. Meaning I have to change my local db's name (I guess I also need to change the physical file). I'm lost with how to do that. Can you please guide me?

My goal is to load the 2 databases on the server for example: 'mysite_db' and 'myNewSite_db'

16

If You want to use the same directory for your mdf\ldf files You will have to (physically) rename them.
1. Detach files from local PC
2. Rename mdf and ldf files
3. Copy\Move the files to the server directory where the original Database is stored.
(In My example I used D:\Data for mdf and E:\Logs for ldf, change the path before running the script)
4. Use this 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. If You want to change the logical file name to be the same as the physical one use:
(Assuming the original logical file name was "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

Good luck,
Roi

| improve this answer | |
  • nice, worked for me. pure gold. – TugboatCaptain Jul 21 '17 at 16:22
6

When you attach the database give it the name "myNewSite_db"

enter image description here

If you save the file in a different directory you don't even need to change the file name.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy