在SQL Server 2012中使用1个脚本或查询还原两个以上的.bak文件

时间:2015-10-06 06:16:41

标签: sql sql-server-2012 backup restore

我有更多备份文件(.bak),我希望在SQL Server 2012的一个脚本中恢复所有这些文件。那么,是否有任何脚本可以执行此操作?

2 个答案:

答案 0 :(得分:0)

是的,您可以使用sp_RestoreGene

  

此过程查询msdb数据库备份历史记录和数据库文件   主人的细节。它构建并返回RESTORE DATABASE命令   它的结果集,它不执行命令。

答案 1 :(得分:0)

您可以通过右键单击数据库手动执行此操作,然后任务>恢复>数据库,但是如果你想要脚本语法。

下面是SQL Server 2012中的示例脚本,下面的脚本也是由向导生成的,有向导生成脚本的选项,你去任务>恢复>数据库,当向导出现时,还原向导的左上角有脚本按钮。 (见下图)

enter image description here

USE [master]

RESTORE DATABASE DatabaseName1 FROM  DISK = 'C:\DATABASE\sample1.bak' WITH  FILE = 1,  
MOVE N'CRM' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\DatabaseName1.MDF',  
MOVE N'CRM_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\DatabaseName1.LDF',  
NOUNLOAD,  STATS = 5

RESTORE DATABASE DatabaseName2 FROM  DISK = 'C:\DATABASE\sample2.bak' WITH  FILE = 1,  
MOVE N'CRM' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\DatabaseName2.MDF',  
MOVE N'CRM_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\DatabaseName2.LDF',  
NOUNLOAD,  STATS = 5

GO

注意:首先在服务器上创建数据库,就像在恢复之前它是空白数据库一样。因此,在上面的示例脚本中,数据库 DatabaseName1 DatabaseName2 已存在于数据库中。