2009-03-24 15 views
0

Kann jemand mir helfen, eine Datenbank von vb.net wiederherzustellen, habe ich versucht, mithilfe gespeicherter Prozedur wiederherzustellen, indem Vorlage Vorlage Skript von SQL Server2005. aber es gibt einen Fehler "Die Datenbank wird bereits verwendet Verwenden Sie bitte eine Master-Datenbank .."Wiederherstellen einer Datenbank mit vb.net

Antwort

2

Ich nehme an, Sie verwendeten die gleiche Verbindungszeichenfolge, die Sie normalerweise verwenden, um eine Verbindung zu der Datenbank herzustellen, die Sie tatsächlich wiederherstellen. Von Ihnen Fehlermeldung, würde ich sagen, dass Sie Ihre Verbindung zum Server mit einem anderen InitialCatalog-Parameter erstellen sollten (die Fehlermeldung zeigt an, dass Sie "Master" verwenden sollten).

Die andere Möglichkeit besteht darin, einen "USE-Master" am Anfang des Skripts anzubringen. Here ist eine kleine Beschreibung der USE-Anweisung.

0

Aus dem Fehler sieht es nicht aus wie es einen tatsächlichen programmatischen VB.net-Fehler gibt.
Es scheint, als ob das Problem auf der Datenbank Wiederherstellung gespeicherte Prozedur liegt. stellen Sie sicher,

Bevor Datenbank wiederherstellen, dass
• Ihre Verbindung wird die Datenbank nicht verwenden Sie wiederherstellen - Dass einer der möglichen Gründe ist für diesen Fehler „, ist die Datenbank bereits in Verwendung bitte eine Master-Datenbank verwenden .. "
• Andere Verbindungen zur Zieldatenbank sollten geschlossen werden - Schließen Sie alle Verbindungen zu ihr.

Denis Troller hat "USE master" erwähnt und stellen Sie sicher, dass Ihr Skript diese Anweisung als die "erste" Anweisung in Ihrem Restore-Batch-Skript enthält.

0

Ich habe das gerade in meinem Projekt geschrieben, also dachte ich, ich würde meine Methode teilen.

Ich rufe die Sicherung und Wiederherstellung von dem SQL auf dem Server Brennen einen SqlCommand.CommandText verwenden und die SqlParameters für Datenbank- und Dateinamen wie folgt festlegen:

Einfaches Backup:

BACKUP DATABASE @dbName 
    TO [email protected] 
    WITH FORMAT

Dann wiederherstellen mit:

USE master 
RESTORE DATABASE @dbName 
    FROM DISK = @fileName

Die Es gibt eine Unmenge von Optionen für die BACKUP und RESTORE Befehle, aber ich wollte nur einen schnellen Vorschlaghammer-Ansatz und das funktioniert gut.

Danke an Denis für den 'USE Master' Tipp, der gerade meinen "in use" Fehler behoben hat!

Verwandte Themen