скопировать базу данных в SQL Server Express? - PullRequest
46 голосов
/ 24 ноября 2010

Я хотел бы сделать копию базы данных, которая у меня есть, но хранить ее на том же сервере, что и тестовая база данных.Тем не менее, все, что я нашел, это использовать мастер копирования базы данных (я использую MS SQL Server Express).

В инструкциях всегда говорится: В SQL Server Management Studio в обозревателе объектов разверните Базы данных, щелкните правой кнопкой мыши базу данных, выберите Задачи, а затем нажмите Копировать базу данных.

У меня нет опции Копировать базу данных.Я работаю как администратор, так что понятия не имею, почему он отсутствует для меня - это то, что я должен установить отдельно?Я не могу отсоединить / присоединить, поскольку он копирует на тот же сервер.Я пытался отсоединить, скопировать MDF / LDF, переименовать, присоединить, но, как вы можете себе представить, это испортило массу :) Я не очень хорош в SQL, чтобы делать все это программно.Могу ли я использовать какой-нибудь инструмент?

Ответы [ 12 ]

76 голосов
/ 03 апреля 2012

В SSMS 2008 вы можете сделать это:

  1. Создать резервную копию базы данных, которую вы хотите скопировать

  2. В SSMS щелкните правой кнопкой мыши «Базы данных» и выберите «Восстановить базу данных»

  3. Выберите базу данных, которую вы хотите скопировать, из раскрывающегося списка «Из базы данных» в разделе «Источник для восстановления»

  4. Введите имя новой базы данных в поле «To database» в разделе «Destination for Restore» - это не может быть имя существующей базы данных.

  5. Нажмите OK

Готово! :)

47 голосов
/ 13 ноября 2013

В SQL Server Express 2012 вы можете выполнять следующие шаги:

  1. Создать резервную копию базы данных, которую вы хотите скопировать
  2. щелкните правой кнопкой мыши «Базы данных» и выберите «Восстановить файлы и файловые группы»
  3. Введите имя новой базы данных в поле «К базе данных».
  4. Выберите «С устройства», а затем выберите файл, который вы скопировали на первом шаге
  5. нажмите "ОК"

это «клонирует» базу данных с правильными настройками таблицы, такими как «значение по умолчанию», «автоматическое увеличение» и т. Д.

8 голосов
/ 16 августа 2013

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

3 голосов
/ 25 ноября 2010

Выполните следующие действия, чтобы сделать копию базы данных в SQL Express

  1. Стоп SQL
  2. Скопируйте mdf, ldf и любой другой файл для БД в НОВОМ месте (убедитесь, что вы получили файл журнала)
  3. Изменить имя каждого скопированного файла
  4. Запустить SQL
  5. Щелкните правой кнопкой мыши База данных в SSMQ и выберите вложение
  6. Обязательно измените имя в столбце «Присоединить как»
  7. Обновите расположение файла в нижней панели «Сведения о базе данных», указав расположение ваших скопированных файлов (особенно этого файла журнала)

С помощью этого метода я смог скопировать базу данных в моей системе SQL Express

alt text

2 голосов
/ 06 июля 2018

У меня была проблема с созданием копии моей базы данных также с использованием SQL Express 2012. Я решил ее методом резервного копирования и восстановления.После создания резервной копии я использовал: restore -> файлы и группы файлов choosing restore option

Следующим шагом было написание нового имени для новой базы данных и установка источника:

set source and named new database

Указание исходного файла

choosing backup file

и, наконец, перезапись существующей базы данныхс заменой должен быть выбран и установить имена для новых файлов с расширением mdf и ldf, которые отличаются от существующих где: Восстановить как

set new names for mdf and ldf files

Этот методработал на меня

2 голосов
/ 27 июля 2013

Просто будьте внимательны, если вы используете SQL Server Express 2012, чтобы перейти к опции Файлы, и убедитесь, что файлы назначения (столбец Восстановить как) отличаются от исходных файлов * .mdf и * .log

(Я пытался поставить изображение, но мне нужно 10 репутации: p)

1 голос
/ 10 марта 2018

Я просто подумал о действительно изящном способе обойти это :) Так что я подумал, что я должен опубликовать свою идею.Обратите внимание, что это «не проверено», но я думаю, что оно будет работать.

  1. Создайте базу данных «Резервное копирование ...» (теоретически это на вашем рабочем сервере, но это не обязательно)
  2. Скопируйте файл резервной копии (с вашего сервера prod) на вашу машину для разработки
  3. Предполагая, что вы используете SSMS Developer Edition на своей машине для разработки, вы можете затем выполнить «Восстановление» на свой компьютер.затем выполните «Копирование базы данных» также на своем компьютере разработки (для создания новой копии БД)
  4. Теперь выполните «Резервное копирование ...» на новой БД, которую вы только что создали,скопируйте файл резервной копии (на рабочий сервер) и выполните «Восстановление» на сервере экспресс-обслуживания sql:)

Надеюсь, это поможет нескольким людям:)

Приветствия,

Джефф

1 голос
/ 03 декабря 2015

Я нашел проблему!Нажмите «Базы данных», восстановите, а затем выполните следующие действия. После выбора места восстановления и записи целевого имени БД перейдите к файлам [аннотация 1 на рисунке] и измените имена файлов в самых правых столбцах на отличные оторигинал [аннотация 2 на картинке] тогда это работает:)

image ПОСМОТРЕТЬ КАРТИНУ ЗДЕСЬ <">

1 голос
/ 14 августа 2015

Решением, безусловно, является создание резервной копии и ее восстановление, но убедитесь, что восстановленная копия указывает на разные файлы .mdf и .ldf.

Вот как это проверить, используя SSMS 2014 и установку SQL Server 12: при условии, что вы создаете и восстанавливаете резервные копии на локальном диске.

  • Создать резервную копию вашей существующей базы данных
    • Щелкните правой кнопкой мыши базу данных и выберите «создать резервную копию ...» в разделе «Задачи».
    • (Если оставить местоположение по умолчанию, вам не нужно искать резервное копирование на следующем шаге при восстановлении.)
  • Восстановление вашей резервной копии в НОВУЮ базу данных:
    • Щелкните правой кнопкой мыши по базам данных, выберите «восстановить базу данных»
    • Выберите «устройство»
    • Нажмите кнопку с многоточием («...»), чтобы открыть диалоговое окно «Selct Backup devices».
    • Выберите «Файл» в качестве типа носителя для резервного копирования и нажмите кнопку «Добавить»
    • Выберите резервную копию, которую вы только что сделали, нажмите ОК (дважды)
    • Теперь, вернувшись в диалоговом окне «Восстановление базы данных», введите новое имя для вашей целевой базы данных
    • Нажмите «Файлы» в разделе «Выбрать страницу» и убедитесь, что «восстановить как» указывает на имена файлов .mdf и .ldf, которые еще не существуют
    • Нажмите ок!
1 голос
/ 24 ноября 2010

Я не верю, что экспресс-версия менеджера будет иметь функцию копирования базы данных.Рассматривали ли вы копирование с помощью метода резервного копирования и восстановления?

http://msdn.microsoft.com/en-us/library/ms190436.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...