Monday, February 11, 2008

Ist auf einem Computer lediglich die Gratis Version des SQL Server 2005, also die Express Edition, so ist das wiederherstellen einer Datenbank nicht immer ganz einfach. Anbei ein Vorschlag wie man dies bewerkstelligen kann.

Schritt 1
Als erstes versuchen wir die Logischen Filenamen der Datenbank auszulesen. Dies hat den Vorteil, das bei der Wiederherstellung der Datenbank der Ordner angegeben werden kann, wo die Daten zu speichern sind.
osql -E -S meinServerName\SQLEXPRESS
-Q "restore filelistonly from disk ='d:\BackupFilename.bak'"
>%temp%\Ausgabe.txt & Notepad %temp%\Ausgabe.txt 

Variante 2
osql -E -S meinServerName\SQLEXPRESS
-Q "restore filelistonly from disk ='d:\BackupFilename.bak'"
>%temp%\Ausgabe.txt & cls & for /F "tokens=1-2" %i in ( %temp%\te.txt ) do @echo %i

Schritt 2
Im sich öffnenden Notizblock stehen nun in der ersten Spalte die Logical Names der Datendateien. Für jede einzelne ist dann im Schrit 3 eine entsprechende Move Anweisung nötig.

Schritt 3
Nun wird der effektive Restore Befehl zusammengesetzt.

osql -E -S meinServerName\SQLEXPRESS
-Q "RESTORE DATABASE neueDB From Disk =
'd:\BackupFilename.bak' with
move 'File_Data' to 'D:\SQL_DATA\neueDB_Data.mdf',
move 'File_Log' to 'D:\SQL_DATA\neueDB_log.ldf'" 

SQL Express Mode switchen SQLExpress_AuthenticationMode_Mixed.reg (.29 KB)

« IIS NTLM (Challenge Response) geht zeitw... | Main | Mathematik kann bezaubern »