Saya mencoba menggunakan ' KEMBALIKAN HEADERONLY ' untuk mendapatkan tanggal ketika cadangan yang akan saya pulihkan telah dibuat.
Perintah:
RESTORE HEADERONLY FROM DISK = '<path to .bak file>'
berfungsi dengan baik di Query Analyzer dan memberikan hasil dengan sekitar 50 kolom.
Masalahnya sebenarnya mengakses ini dari kode.
Saya bisa mendapatkan ini ke tabel temp dengan mendeklarasikan setiap satu dari 50: kolom ish, memasukkan ke dalamnya dengan exec
dan mendapatkan nilai yang saya inginkan dari sana.
Masalahnya adalah bahwa saya benar-benar ingin menghindari keharusan mendeklarasikan seluruh resultset sebagai tabel temp karena sepertinya solusi yang sangat rapuh jika mereka pernah menambahkan kolom ke dalam versi masa depan.
Apakah ada cara untuk mendapatkan satu kolom saja dari resultset ini tanpa mendeklarasikan semua kolom?
sp_describe_first_result_set
sistem sp adalah biang keladinya. Saya juga mengajukan pertanyaan ini sebagai tiket terpisah di siniMARTINPC\MSSQL2008
) jadi mungkin ada sesuatu yang berubah di versi yang lebih baru yang berarti ini tidak lagi berfungsi.Ini adalah versi independen sp yang saya tulis untuk mendapatkan tanggal cadangan dari sebuah file.
Ini diuji untuk SQL 2008R2, 2012 dan 2014.
sumber
12.0.4100.1
, jadi kode harus melihat semua bidangSERVERPROPERTY('ProductVersion')
untuk memenuhi dengan benar untuk itu.Karena Anda hanya bertanya tentang mengakses data dari 'kode' tanpa menentukan rincian kode apa, saya dengan ini menyajikan solusi PowerShell :
sumber
Cara kuno, untuk referensi:
sumber
12.0.4100.1
.