Ich versuche, ' HEADERONLY WIEDERHERSTELLEN ' zu verwenden, um das Datum abzurufen , an dem das Backup erstellt wurde, das ich wiederherstellen möchte .
Der Befehl:
RESTORE HEADERONLY FROM DISK = '<path to .bak file>'
funktioniert gut in Query Analyzer und gibt eine Ergebnismenge mit etwa 50 Spalten.
Das Problem besteht darin, tatsächlich über Code darauf zuzugreifen.
Ich kann dies in eine temporäre Tabelle aufnehmen, indem ich jede einzelne der 50: ish-Spalten deklariere, mit einfüge exec
und dort den gewünschten Wert erhalte.
Das Problem ist, dass ich wirklich vermeiden möchte, die gesamte Ergebnismenge als temporäre Tabelle deklarieren zu müssen, da es wie eine sehr spröde Lösung erscheint, wenn sie in zukünftigen Versionen jemals Spalten hinzufügen.
Gibt es eine Möglichkeit, nur eine einzelne Spalte aus dieser Ergebnismenge herauszuholen, ohne alle Spalten zu deklarieren?
sp_describe_first_result_set
System SP ist der Schuldige dahinter. Ich habe diese Frage auch als separates Ticket hier gestelltMARTINPC\MSSQL2008
) getestet. In späteren Versionen hat sich möglicherweise etwas geändert, was bedeutet, dass dies nicht mehr funktioniert.Dies ist eine versionunabhängige SP, die ich geschrieben habe, um das Sicherungsdatum aus einer Datei zu erhalten.
Es wurde für SQL 2008R2, 2012 und 2014 getestet.
quelle
12.0.4100.1
, also sollte der Code alle Felder in betrachtenSERVERPROPERTY('ProductVersion')
, um dies korrekt zu berücksichtigen.Da Sie nur nach dem Zugriff auf die Daten über "Code" gefragt haben, ohne Angaben zu der Art des Codes zu machen, stelle ich hiermit die PowerShell- Lösung vor:
quelle
Der altmodische Weg als Referenz:
quelle
12.0.4100.1
.