Eu tenho um banco de dados A. Ele contém alguns dados. Eu criei um backup para A como arquivo A.bak . Em seguida, crio um novo banco de dados vazio B. E, em seguida, tento restaurar o B do A.bak . Mas o SQL Serve me diz o seguinte erro:
O arquivo 'C: \ SQL Directory \ DATA \ A.mdf' não pode ser substituído. Está sendo usado pelo banco de dados 'A'.
Mas se eu excluir A do SQL Server, o retore será ok.
Não entendo por que o SQL precisa gravar no arquivo de banco de dados original enquanto restaura a partir de um arquivo de backup separado ?
Obrigado ~
fonte
Ao restaurar o backup, você pode especificar os arquivos de dados a serem restaurados.
Olhe aqui e aqui . Você pode usar a opção "Restaurar os arquivos do banco de dados como" e o sinalizador "Substituir o banco de dados existente".
fonte
Você está usando a opção REPLACE, no comando TSQL ou como uma caixa de seleção selecionada? Como alternativa, você pode renomear os arquivos e chamar o banco de dados de outra maneira.
Você também achará um pouco difícil restaurar em um banco de dados que está sendo usado ... será necessário interromper os processos usando o banco de dados; OU solte / exclua o banco de dados primeiro, fechando as conexões (essa é provavelmente a mais fácil); OU defina o banco de dados que você deseja substituir em algo como modo de usuário restrito, com reversão imediata, portanto, esperamos que apenas DBAs possam usar; OU até pare o SQL Server e reinicie-o - espero que a restauração seja executada antes que alguém / qualquer coisa use esse banco de dados.
O PS faz um backup do banco de dados que você está prestes a sobrescrever, apenas por precaução.
fonte
Se alguém pesquisar uma solução na GUI do Management Studio depois de já usar a
Options
página e aOverwrite the existing database (WITH REPLACE)
opção de ativação :Basta clicar na
Restore As
coluna e alterar os nomes dos*.mdf
arquivos e do*.ldf
arquivo.fonte