Dies wird hoffentlich eine nette und schnelle Frage für jemanden da draußen sein. Es geht weiter von meiner vorherigen Frage .
Ich habe eine .BAK-Datei, die ich wiederherstellen möchte. Die .BAK wurde mit dem NOINIT
Argument erstellt, um zu versuchen, die vorherige Version zu speichern, und daher wurden neuere Daten angehängt (so wie ich es verstehe). Ich habe mich gefragt, ob dies bedeutet, dass bei der Wiederherstellung versucht wird, eine alte Version des Backups zu verwenden.
Das heißt, ich habe die Datenbank gesichert, neue Tabellen hinzugefügt, eine weitere vollständige Sicherung durchgeführt und die hinzugefügten Tabellen gelöscht. Wenn ich versuche wiederherzustellen, erhalte ich die "neuen" Tabellen nicht zurück. Liegt dies daran, dass bei der Wiederherstellung eine Version der Datenbank in der .BAK gefunden wird, die vor den "neuen Tabellen" erstellt wurde? Wenn ja, wie kann ich angeben, dass die neuesten Daten verwendet werden sollen?
BEARBEITEN: Entschuldigung, dass Sie nicht früher angegeben haben, dass eine SQL Server-Datenbank verwendet wird
quelle
Antworten:
Dies liegt daran, dass bei Nichtangabe des
FILE
Parameters vonRESTORE DATABASE
standardmäßig 1 verwendet wird. Dies ist der erste Sicherungssatz auf diesem Medium. Weitere Informationen finden Sie im Abschnitt Angeben eines Sicherungssatzes auf dieser Seite .Anstatt:
Sie werden tun wollen:
Wo
N
befindet sich die Nummer des Sicherungssatzes auf dem Medium?N
kann durch AusführenRESTORE HEADERONLY
auf dem Medium erhalten werden. Die Spalte, mit der Sie sich befassen, sollPosition
mit derFILE
Option verwendet werden.quelle