Tenho vários backups de banco de dados e desejo restaurá-los todos em um servidor.
Alguém pode me indicar a direção certa com o script SQL para modificar os nomes dos arquivos lógicos para o caminho correto e não os carregados com o banco de dados?
Restore FILELISTONLY FROM DISK='E:\New folder\Thursday - DB_Order.bak'
RESTORE DATABASE Business_Data_TSQL
FROM DISK='E:\New folder\Thursday - DB_Order.bak'
WITH
MOVE 'DBOrder_Data' TO 'E:\New folder\Business_Data.mdf',
MOVE 'DBOrder_Log' TO 'E:\New folder\Business_Data_log.ldf'
Usando a consulta 1, obtenho o nome lógico , então esses nomes precisam ser definidos manualmente para a consulta 2, mas é realmente difícil quando há mais de um único banco de dados.
Por favor, ajude-me a escrever um script onde eu apenas passo o caminho físico do arquivo de backup e o novo nome do banco de dados, então ocorre uma restauração desse banco de dados.
Se tiver alguma dúvida, pergunte. Desde já, obrigado.
Aqui está algo que você pode usar. Não é totalmente automatizado, mas este é definitivamente um pedaço de script muito útil.
Você pode usar o arquivo SQLCMD / Batch para passar os parâmetros do nome do seu banco de dados e do nome do arquivo físico e tentar automatizá-lo.
Eu usei um script do PowerShell como este para restaurar backups para um novo destino, redefinindo caminhos e nomes de arquivos: