|
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
|