RESTORE FILELISTONLY
é um comando informativo e não é necessário para executar uma restauração. Um usuário pode usar isso para descobrir quais são os nomes lógicos para os arquivos de dados, que podem ser usados com o MOVE
comandos para restaurar o banco de dados para um novo local. Conforme sugerido pela mensagem de erro, você precisa usar
RESTORE FILELISTONLY
para ver quais são os nomes lógicos do banco de dados. Seu comando de restauração tem esses erros. Aqui está um exemplo de trabalho do que você precisa fazer:
--backup the database
backup database test1 to disk='c:\test1_full.bak'
-- use the filelistonly command to work out what the logical names
-- are to use in the MOVE commands. the logical name needs to
-- stay the same, the physical name can change
restore filelistonly from disk='c:\test1_full.bak'
--------------------------------------------------
| LogicalName | PhysicalName |
--------------------------------------------------
| test1 | C:\mssql\data\test1.mdf |
| test1_log | C:\mssql\data\test1_log.ldf |
-------------------------------------------------
restore database test2 from disk='c:\test1_full.bak'
with move 'test1' to 'C:\mssql\data\test2.mdf',
move 'test1_log' to 'C:\mssql\data\test2.ldf'