Olá pessoal,
recentemente eu tive a necessidade de automatizar o restore de um database no SQL Server utilizando o arquivo *.bak mais recente em um determinado diretório. Eu fiz um script simples em Powershell para essa demanda e eu aproveito para compartilhar aqui com vocês.
Primeiro eu declarei a váriável $localpath definindo o diretório onde os arquivos de backup estão armazenados, depois eu declarei a váriável $filename executando o comando gci no diretório definido em $localpath e verificando qual é o arquivo mais recente.
Em seguida eu utilizei o comando Restore-SqlDatabase para restaurar o arquivo *.bak mais recente definido no path “$localPath\$FileName“
Então chegamos ao código abaixo:
$localPath = "C:\BACKUP"
$filename = gci "$localPath" | sort LastWriteTime | select -last 1
Restore-SqlDatabase -ServerInstance "NOME_DO_SQLSERVER" -Database "nome_do_database" -BackupFile "$localPath\$FileName" -ReplaceDatabase
Em $localpath substitua “C:\BACKUP” pelo nome do diretório onde os arquivos *.bak estão armazenados, em “NOME_DO_SQLSERVER” coloque o nome do servidor SQL Server onde o backup será restaurado e em “nome_do_database” coloque o nome do banco de dados que será restaurado, depois salve o código em um arquivo *.ps1 e pode executar.
Até a próxima!