Moin,
für ein von mir erstelltes Tool zum Sichern und Wiederherstellen von Backups (SQL, MySQL) benötige ich aus einer BAK Datei (MSSQL) den Namen der Datenbank.
Als Beispiel ein Ausschnitt aus meinem Restore-Statement.
Das Script funktioniert, solange die Datenbank aus der die Sicherung erstellt wurde, die selbe ist, wie die unter der sie wieder importiert werden soll.
Nun möchte ich über VB die BAK Datei einlesen (nicht in den SQL Server!) und nachschauen, wie der Datenbankname in der Datei lautet.
Grüße
für ein von mir erstelltes Tool zum Sichern und Wiederherstellen von Backups (SQL, MySQL) benötige ich aus einer BAK Datei (MSSQL) den Namen der Datenbank.
Als Beispiel ein Ausschnitt aus meinem Restore-Statement.
VB.NET-Quellcode
- Dim SqlStr As New StringBuilder
- With SqlStr
- .AppendLine("USE [master]")
- .AppendLine("RESTORE DATABASE [" & NewDatabaseName & "]")
- .AppendLine("FROM DISK = N" & "'" & BakFile.FullName & "'")
- .AppendLine("WITH FILE = 1" & Cnst.SqlSeparator)
- .AppendLine("MOVE N" & "'" & Me.InitialDatabase & "'" & " TO " & "N'" & IO.Path.Combine(InstanceDirectory.FullName, NewDatabaseName & ".mdf") & "'" & Cnst.SqlSeparator)
- .AppendLine("MOVE N" & "'" & Me.InitialDatabase & "_Log" & "' TO " & "N'" & IO.Path.Combine(InstanceDirectory.FullName, NewDatabaseName & "_log.ldf") & "'" & Cnst.SqlSeparator)
- .AppendLine("NOUNLOAD" & Cnst.SqlSeparator & "REPLACE" & Cnst.SqlSeparator & "STATS = 5")
- .Debug(True)
- Return .ToString
- End With
Das Script funktioniert, solange die Datenbank aus der die Sicherung erstellt wurde, die selbe ist, wie die unter der sie wieder importiert werden soll.
Me.InitialDatabase
gibt hier den Namen der Datenbank-Datei in der Sicherung an. Dieser ist allerdings abweichend von NewDatabaseName
.Nun möchte ich über VB die BAK Datei einlesen (nicht in den SQL Server!) und nachschauen, wie der Datenbankname in der Datei lautet.
Grüße