如何在新位置还原MSSQL数据库而不指定逻辑名称

时间:2014-05-19 14:50:21

标签: sql-server sql-server-2008

我想使用命令行将MSSQL数据库从客户计算机还原到我的计算机。

语法为:

RESTORE DATABASE [MyDB] FROM DISK='D:BackupsMyDB.bak'  WITH 
MOVE 'AdventureWorks2008R2_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf'

它有效,但每次我需要在MOVE之后指定逻辑名称,因为它位于原点中的另一个文件夹中。 有没有办法在新位置恢复备份文件而不必使用逻辑名称?

例如,我想要像:

RESTORE DATABASE [MyDB] FROM DISK='D:BackupsMyDB.bak'  WITH 
MOVE * TO 'D:\MyData'

1 个答案:

答案 0 :(得分:0)

如果您试图移动文件的位置,那么您肯定需要指定逻辑名称。

http://msdn.microsoft.com/en-us/library/ms190255.aspx

如果目标是另一台服务器,您可以使用RESTORE FILELISTONLY命令查找物理和逻辑名称。

http://technet.microsoft.com/en-us/library/ms173778.aspx

以下是Greg Robidoux的剧本。它通过BACKUP链为给定数据库生成恢复TSQL代码。

您可以将其作为解决问题的起点。

http://www.mssqltips.com/sqlservertip/1243/auto-generate-sql-server-database-restore-scripts/

祝你好运

Crafty DBA