Próbuję użyć opcji „ PRZYWRÓĆ HEADERONLY ”, aby uzyskać datę utworzenia kopii zapasowej, którą zamierzam przywrócić.
Komenda:
RESTORE HEADERONLY FROM DISK = '<path to .bak file>'
działa dobrze w Query Analyzer i daje zestaw wyników z około 50 kolumnami.
Problemem jest dostęp do tego z kodu.
Mogę wprowadzić to do tabeli tymczasowej, deklarując każdą z 50 kolumn: ish, wstawiając do niej exec
i pobierając z niej żądaną wartość.
Problem polega na tym, że naprawdę chcę uniknąć deklarowania całego zestawu wyników jako tabeli tymczasowej, ponieważ wydaje się, że jest to bardzo kruche rozwiązanie, jeśli kiedykolwiek dodadzą do niego kolumny w przyszłych wersjach.
Czy jest jakiś sposób na wyciągnięcie jednej kolumny z tego zestawu wyników bez deklarowania wszystkich kolumn?
sp_describe_first_result_set
system sp. Ja również podniósł tę kwestię jako oddzielnego biletu tutajMARTINPC\MSSQL2008
więc może coś się zmieniło w późniejszych wersjach, co oznacza, że to już nie działa.Jest to niezależna od wersji sp, którą napisałem, aby uzyskać datę kopii zapasowej z pliku.
Jest testowany pod kątem SQL 2008R2, 2012 i 2014.
źródło
12.0.4100.1
, więc kod powinien sprawdzać wszystkie pola,SERVERPROPERTY('ProductVersion')
aby poprawnie to zaspokoić.Ponieważ zapytałeś tylko o dostęp do danych z „kodu” bez podania żadnych szczegółów, jakiego rodzaju kodu, niniejszym przedstawiam rozwiązanie PowerShell :
źródło
W staromodny sposób:
źródło
12.0.4100.1
.