SMO: Wiederherstellung in eine andere DB

Ich habe ein Dutzend verschiedener Blogs gelesen und die MSDN-Beispiele durchgelesen, und sie funktionieren einfach nicht für mich.

Das, was ich versuche, ist das automatische Verschieben einer Datenbank von unserer Produktionsinstanz in unsere Entwicklungsinstanz oder in die andere Richtung.

er Ansatz, den ich gewählt habe, ist als

Backup / Restore in eine temporäre Datenbankdetach temp DBcopy mdf und ldf files to the other instance reattach.

Ich bleibe bei 1 und kann nicht verstehen warum. Nach allem, was ich gelesen habe, sollte das funktionieren.

HINWEIS: Ich habe @ eingesteldbName an die db die ich wiederherstellen möchte. Ich habe auch @ gesetrestore.Database = dbName, woherrestore ist eine Instanz desRestore Klasse in dersmo Namespace.

mdf.LogicalFileName = dbName;
mdf.PhysicalFileName = String.Format(@"{0}\{1}.mdf", server.Information.MasterDBPath, dbName);
ldf.LogicalFileName = dbName + "_log";
ldf.PhysicalFileName = String.Format(@"{0}\{1}.ldf", server.Information.MasterDBPath, dbName);

restore.RelocateFiles.Add(mdf);
restore.RelocateFiles.Add(ldf);
restore.SqlRestore(server);

Dies ist die Ausnahme, die ich bekomme:

Die Datei 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.mdf' kann nicht überschrieben werden. Es wird von der Datenbank 'MIQDesignTest2' verwendet.
Datei 'MIQDesign' kann nicht in 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.mdf' wiederhergestellt werden. Verwenden Sie WITH MOVE, um einen gültigen Speicherort für die Datei zu ermitteln.
Die Datei 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.ldf' kann nicht überschrieben werden. Es wird von der Datenbank 'MIQDesignTest2' verwendet.
Datei 'MIQDesign_log' kann nicht in 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.ldf' wiederhergestellt werden. Verwenden Sie WITH MOVE, um einen gültigen Speicherort für die Datei zu ermitteln.
ei der Planung der RESTORE-Anweisung wurden @Probleme festgestellt. Vorherige Nachrichten enthalten Details.
RESTORE DATABASE wird abnormal beendet.

Warum wird versucht, die Original-MDF zu überschreiben? Ist das nichtRelocateFiles Zeug soll angeben, dass es in einem @ gespeichert werden soander physischer Dateiname?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage