Создание новой базы данных из резервной копии другой базы данных на одном сервере?

Я пытаюсь создать новую базу данных из старой резервной копии базы данных на том же сервере. При использовании студии управления SQL-сервером и попытке восстановления базы данных из резервной копии я получаю эту ошибку

System.Data.SqlClient.SqlError: The backup set holds a backup of a database 
other than the existing 'test' database. (Microsoft.SqlServer.Smo)

после googling вокруг я нашел этот кусок кода

    RESTORE DATABASE myDB

 FROM DISK = 'C:\myDB.bak'

 WITH MOVE 'myDB_Data' TO 'C:\DATA\myDB.mdf',

MOVE 'myDB_Log' TO 'C:\DATA\myDB_log.mdf'
GO

Мне было интересно, будут ли команды переноса беспорядочно работать с базой данных, на которую был сделан резерв на этом сервере?

Спасибо, вся помощь приветствуется.

Ответ 1

Я думаю, что это проще, чем это.

  • Сначала создайте пустую целевую базу данных.
  • Затем в мастере восстановления "SQL Server Management Studio" найдите параметр для перезаписи целевой базы данных. Он находится на вкладке "Параметры" и называется "Перезаписать существующую базу данных (С ЗАМЕНЕЙ)". Проверь это.
  • Не забудьте выбрать целевые файлы на странице "Файлы".

Вы можете изменить "вкладки" в левой части мастера (Общие, Файлы, Параметры)

Ответ 2

Можно даже восстановить без создания пустой базы данных.

В Sql Server Management Studio щелкните правой кнопкой мыши Базы данных и выберите Восстановить базу данных... введите описание изображения здесь

В диалоговом окне "Восстановить базу данных" выберите исходную базу данных или устройство как обычно. После выбора исходной базы данных SSMS заполняет имя целевой базы данных на основе исходного имени базы данных.

Затем можно изменить имя базы данных и ввести новое имя базы данных назначения.

введите описание изображения здесь

При таком подходе вам даже не нужно заходить на вкладку "Параметры" и выбрать опцию "Перезаписать существующую базу данных".

Кроме того, файлы базы данных будут называться последовательно с вашим новым именем базы данных, и вы все равно можете изменить имена файлов, если хотите.

Ответ 3

Проверка базы данных "Параметры поверх записи" работала для меня:)

введите описание изображения здесь

Ответ 4

Подумайте об этом как о архиве. MyDB.Bak содержит MyDB.mdf и MyDB.ldf.

Восстановить с помощью Move to say HerDB в основном захватывает MyDB.mdf(и ldf) из резервной копии и копирует их как HerDB.mdf и ldf.

Итак, если у вас уже есть MyDb на экземпляре сервера, который вы восстанавливаете, он не будет затронут.

Ответ 5

Я сделал это...... но происхождение БД застряло в восстановлении. Это случилось с кем-нибудь?