从.bak文件

时间:2016-03-09 21:34:31

标签: sql sql-server python-2.7 sql-server-2012

我正在尝试创建一个python脚本,它将动态恢复.bak文件中的数据库。运行查询

RESTORE DATABASE db_name FROM DISK = '\\path\to\db\db_name.bak' WITH REPLACE
如果原始数据库名称不存在,则

工作正常,但由于存在多个服务器且通常重复名称,因此情况并非总是如此。

如果.bak文件中包含的.mdf名称确实存在,则WITH MOVE语法非常有用,如下所示

RESTORE DATABASE db_name 
  FROM DISK = '\\path\to\db\db_name.bak'
  WITH 
    MOVE 'Logical_name' TO '\\somepath\...\MyDB.mdf'

不幸的是,这需要在运行查询之前了解逻辑名称,因此对于通用脚本不是很有用。有没有办法获得逻辑名称并动态填充它以使其更通用?

1 个答案:

答案 0 :(得分:2)

使用restore filelistonly commamd