Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。

Posted 永不言弃!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。相关的知识,希望对你有一定的参考价值。

当使用语句还原数据库时,报如下错误:

 消息 3234,级别 16,状态 2,第 29 行
逻辑文件 \'LenborMealOrder_Base_2017\' 不是数据库 \'Members_01\' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
消息 3013,级别 16,状态 1,第 29 行
RESTORE DATABASE 正在异常终止。

 

原因:此数据库是用sql语句备份而来,引发的错误,原备份和还原的sql语句如下:

--备份
BACKUP DATABASE LeaRunFramework_Base_2016 TO DISK  = \'c:\\DB_BACKUP\\LenborMealOrder_Base_2017.bak\'

--还原
RESTORE DATABASE Members_01 FROM DISK  = \'c:\\DB_BACKUP\\LenborMealOrder_Base_2017.bak\' 
WITH MOVE \'LenborMealOrder_Base_2017\' TO \'c:\\DB_BACKUP\\Members_01.mdf\',
MOVE \'LenborMealOrder_Base_2017_log\' TO \'c:\\DB_BACKUP\\Members_01.ldf\'

 

解决方案:查找该数据的逻辑文件名,通过下面的语句即可查出,再修改还原语句中的名称即可。

--获得数据库备份文件的信息 
restore filelistonly from disk=\'c:\\DB_BACKUP\\LenborMealOrder_Base_2017.bak\'

 

修改后的还原语句如下:

--还原
RESTORE DATABASE LenborMealOrder_Base_2017 FROM DISK  = \'c:\\DB_BACKUP\\LenborMealOrder_Base.bak\' 
WITH MOVE \'LeaRunFramework_Base_2016\' TO \'c:\\DB_BACKUP\\LenborMealOrder_Base_2017.mdf\',
MOVE \'LeaRunFramework_Base_2016_log\' TO \'c:\\DB_BACKUP\\LenborMealOrder_Base_2017.ldf\'


执行上述语句即成功还原数据库,如下图:

 

以上是关于Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:1772,但实际为 0:0)。在文件 'D:Program FilesMicrosoft SQL(代

查询SQL Server执行过的SQL语句

SQL Server存储过程 - 返回包含字母数字结果的3个字符行号的逻辑

sql server 按值得优先级做帅选数据的条件?

sql server数据库被删除怎么恢复

sqlserver 中一些常看的指标和清除缓存的方法