Somos uma equipe de matemáticos (ou seja, sem experiência em DBA).
Estamos migrando de uma caixa de servidor antiga (SQL Server 2012) para uma nova caixa de servidor (SQL Server 2017). Para cada banco de dados no servidor antigo, fizemos uma cópia de backup, transferimos para o novo servidor e restauramos a glória completa do banco de dados a partir do arquivo de backup.
Até agora tudo bem.
No entanto, houve um atraso em nossa data de mudança e ainda estamos usando o servidor antigo. À medida que continuamos a trabalhar no servidor antigo, as alterações continuam sendo acumuladas nesses bancos de dados. Portanto, isso significa que os bancos de dados copiados no novo servidor agora estão obsoletos e desatualizados. (Irônico, não?)
Para os bancos de dados que foram alterados, sabemos que eventualmente teremos que fazer novas cópias de backup e transferi-las para o novo servidor.
Quando chegar a hora, qual é a maneira mais inteligente de se livrar desses bancos de dados agora obsoletos no novo servidor antes de restaurar as cópias de backup mais recentes?
Preocupamo-nos que com os mesmos nomes, alguma oclusão ou eclipsação possa ocorrer se não tivermos cuidado. Queremos ter certeza de que as cópias desatualizadas no novo servidor foram realmente eliminadas antes de restaurar as versões mais recentes.
Basta usar WITH REPLACE em seu comando de restauração e ele substituirá os bancos de dados existentes no destino. Simples e feito. Você pode DROP primeiro, mas não é necessário.
WITH REPLACE é a palavra-chave T-SQL que corresponde a "substituir o banco de dados existente" na GUI do banco de dados de restauração (adicionada para futuros leitores deste tópico)
Ah... e você está executando uma versão RC de 2017? RTM não é até a próxima segunda-feira 10/2... apenas uma reflexão tardia.
Restaurar um banco de dados sobre um banco de dados existente substitui completamente o banco de dados antigo - apenas certifique-se de marcar "substituir banco de dados existente".