Как получить расположение файлов .MDF / .LDF, если база данных не существует - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть пара тестовых серверов, и я пытаюсь удалить каждую базу данных и восстановить их с помощью файлов резервных копий, расположенных в удаленной файловой системе.

RESTORE DATABASE db_1 FROM DISK = '\\remote\file\path'
WITH REPLACE,
MOVE 'db_1' TO 'W:\Common1\Data\db_1.mdf',
MOVE 'db_1_log' TO 'W:\Common1\Logs\db_1_log.ldf'

Это работает нормально, если я указываю правильное местоположение.У меня проблема в том, что не все тестовые серверы имеют одинаковые местоположения .mdf и .ldf.Я могу запросить select * from db_1.dbo.sysfiles и получить местоположения, но мне не повезло, если база данных не существует.

Есть ли способ получить правильные .mdf и .ldf конкретной базы данных, если база данных не существует?

1 Ответ

0 голосов
/ 17 сентября 2018

Используйте параметр восстановления FILELISTONLY , чтобы получить информацию (включая физическое имя файла и путь) для файлов в резервной копии базы данных.

RESTORE FILELISTONLY FROM DISK = 'path to your .bak'

Вы можете вывести этот вывод в таблицу и динамически создавать команды восстановления из информации.

...