Я пытаюсь написать автоматическое резервное копирование и восстановление T-SQL-скриптов. Я сделал часть BACKUP, но я борюсь с RESTORE.SQL Server «RESTORE FILELISTONLY» Resultset
Когда я запускаю следующую инструкцию в SS Management Studio;
EXEC('RESTORE FILELISTONLY FROM DISK = ''C:\backup.bak''')
Я получаю результирующий набор в сетке, а также я могу использовать
INSERT INTO <temp_table>
EXEC('RESTORE FILELISTONLY FROM DISK = ''C:\backup.bak''')
для заполнения временной таблицы. Однако я получаю синтаксическую ошибку, когда я пытаюсь выбрать из этого набора результатов. например
SELECT * FROM
EXEC('RESTORE FILELISTONLY FROM DISK = ''C:\backup.bak''')
Метаданные результатов должны храниться где-то в словаре SQL Server. Я нашел другую формулу групповой помощи, чтобы получить автоматическое восстановление, но если я смогу добраться до набора результатов, я бы создал более элегантное решение. Также обратите внимание, что ResultSet отличается в 2008 году, чем 2005
Заранее спасибо ...
Спасибо за ответ. Но я озадачил, что комментарий EXEC находит поля из команды RESTORE где-то (словарь, метаданные и т. Д.). Почему select не может получить доступ к одному и тому же ресурсу для извлечения полей набора результатов. – mevdiven
EXEC получает поля из результирующего набора. Нет ни словаря, ни метаданных. –