Sonntag, 7. September 2008

entwickler.com Magazine Konferenzen Akademie Entwickler-Forum Jobbörse Bücher
Software & Support Verlag

Umbennen der Daten- und Transaktionslog-Datei?

Frage: Eine MS SQL Server 2000-Datenbank soll umbenannt werden. Soweit kein Problem, denn dafür gibt es Stored Procedures. Wofür ich aber noch keine Lösung gefunden habe, ist das Umbennen der Daten- und Transaktioslog-Datei. Ist das im Nachhinein möglich? Das Problem ist, das die neue Datenbank nach der Umbenennung immer noch die alten Dateinamen nutzt.

Antwort: Sowohl das Umbenennen der Datenbank als auch das Umbenennen der Datenbankdateien kann in einem Arbeitsschritt erledigt werden, indem die Datenbank unter dem alten Namen gesichert und mit dem neuen Datenbanknamen wiederhergestellt wird. Wichtig ist dabei, dass die folgenden Anweisungen als SQL-Batch "am Stück" ausgeführt werden. Beim Wiederherstellen (RESTORE) wird zuerst das "Inhaltsverzeichnis" mit den Dateinamen eingelesen, um dann beim tatsächlichen Wiederherstellen unter dem neuen Datenbanknamen über die MOVE-Anweisung den neuen Dateinamen festzulegen. Am Ende erhält man eine zusätzliche (umbenannte) Datenbank, die auch neue Dateinamen nutzt:

BACKUP DATABASE AlteDatenbank 
   TO DISK = 'C:\Temp\AlteDatenbank.bak'
RESTORE FILELISTONLY 
   FROM DISK = 'C:\Temp\AlteDatenbank.bak'
RESTORE DATABASE UmbenannteDatenbank 
   FROM DISK = 'C:\Temp\AlteDatenbank.bak'
   WITH RECOVERY,
   MOVE 'AlteDatenbank'     TO 'D:\MSSQL\UmbenannteDatenbank.MDF', 
   MOVE 'AlteDatenbank_LOG' TO 'E:\MSSQLLog\UmbenannteDatenbank_LOG.LDF'
GO






Software & Support Verlag GmbH