请使用 RESTORE FILELISTONLY 来列出逻辑文件名

今天在写一个每周取备份恢复的脚本,
(从一个机器上去APPDB库的备份到另外一台机器上进行还原)
在执行还原脚本时报错,)
我的原脚本如下:

set @CMD= 'restore database ' + @prodDB + ' from disk =''E:\gildata\BAK\APPDB\'+@backup_dir+'1.bak'''
+', disk =''E:\gildata\BAK\APPDB\'+@backup_dir+'2.bak'''
+', disk =''E:\gildata\BAK\APPDB\'+@backup_dir+'3.bak'''
+', disk =''E:\gildata\BAK\APPDB\'+@backup_dir+'4.bak'''
+' with  replace, move  '+ '''APPDB'' to ''N:\Gildata\APPDB\APPDB_Data.mdf''' 
+',  move '+ '''APPDB_Log'' to ''N:\Gildata\APPDB\APPDB_Log.ldf''' 
exec (@CMD)

报错如下:

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

解决办法:
使用RESTORE FILELISTONLY 来列出逻辑文件名。
请使用 RESTORE FILELISTONLY 来列出逻辑文件名_第1张图片再将原代码改为
请使用 RESTORE FILELISTONLY 来列出逻辑文件名_第2张图片然后还原就可以成功了。

你可能感兴趣的:(sqlserver)