Kopieren Sie die Datenbank und benennen Sie sie um, damit ich beide Kopien anhängen kann

12

Ich habe eine Datenbank mit dem Namen 'mysite_db' auf einem Server und habe auf meinem lokalen Computer eine Kopie erstellt, die auch 'mysite_db' lautet. Ich möchte die Datenbank (von meinem lokalen Computer) an den Server anschließen, der bereits diesen Datenbanknamen hat. Das heißt, ich muss den Namen meiner lokalen Datenbank ändern (ich denke, ich muss auch die physische Datei ändern). Ich habe keine Ahnung, wie das geht. Kannst du mich bitte führen?

Mein Ziel ist es, die 2 Datenbanken auf den Server zu laden, zum Beispiel: 'mysite_db' und 'myNewSite_db'

Wibeasley
quelle

Antworten:

16

Wenn Sie dasselbe Verzeichnis für Ihre mdf \ ldf-Dateien verwenden möchten, müssen Sie diese (physisch) umbenennen.
1. Trennen Sie die Dateien vom lokalen PC.
2. Benennen Sie die MDF- und LDF-Dateien um.
3. Kopieren Sie die Dateien in das Serververzeichnis, in dem die ursprüngliche Datenbank gespeichert ist.
(In meinem Beispiel habe ich D: \ Data für mdf und E: \ Logs für ldf verwendet. Ändern Sie den Pfad, bevor Sie das Skript
ausführen. ) 4. Verwenden Sie diesen 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. Wenn Sie den logischen Dateinamen so ändern möchten, dass er dem physischen entspricht, verwenden Sie
Folgendes : (Angenommen, der ursprüngliche logische Dateiname war "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

Viel Glück,
Roi

Roi Gavish
quelle
schön, für mich gearbeitet. reines Gold.
TugboatCaptain
6

Wenn Sie die Datenbank anhängen, geben Sie ihr den Namen "myNewSite_db".

Geben Sie hier die Bildbeschreibung ein

Wenn Sie die Datei in einem anderen Verzeichnis speichern, müssen Sie nicht einmal den Dateinamen ändern.

Scott Chamberlain
quelle