Мне нужно программно (T-SQL) восстановить резервную копию базы данных в SQL Server 2008. Эта резервная копия поступает с другого сервера, и исходное имя базы данных также могло быть другим. (По сути, я копирую базу данных с какого-то сервера в новую базу данных на другом сервере.)
По-видимому, я должен использовать RESTORE DATABASE ... WITH MOVE
, который работает, но мне нужно знать, куда следует восстанавливать файлы и как они должны называться. Несмотря на поиск, я не нашел, казалось бы, самой простой задачи: просто использовать путь и имена файлов по умолчанию, т. е. делать то, что делает SQL Server, когда вы выдаете CREATE DATABASE
- вам не нужно указывать путь для эта команда, так зачем она нужна для RESTORE
?
Я пропустил какое-то тривиальное решение, или мне действительно придется перечислить файлы, каким-то образом найти каталог базы данных из конфигурации SQL Server и использовать эту информацию для создания команды RESTORE
? Спасибо.
(По сравнению с PostgreSQL, где при использовании pg_restore вы указываете целевую базу данных, которая уже создана; и когда вы ее создавали, у вас была возможность — не обязательная — указать табличное пространство не по умолчанию, но если вы этого не сделали, вы просто все равно, где файлы физически хранятся.)