如果数据库不存在,如何获取.MDF / .LDF文件的位置

时间:2018-09-17 20:45:30

标签: sql-server database database-restore

我有几个测试服务器,我试图删除每个数据库并使用位于远程文件系统上的备份文件来还原它们。

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 :(得分:0)

使用FILELISTONLY恢复选项来获取数据库备份中文件的信息(包括物理文件名和路径)。

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

您可以将此输出转储到表中,并根据信息动态创建还原命令。