Параметр «Копировать базу данных» не найден в SQL Server Management Studio 2008 R2

10

Я не вижу опции Копировать базу данных в SQL Server Management Studio 2008 R2.

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

navule
источник
исходная база данных полностью пуста без каких-либо строк. Я хочу скопировать только структуру с таблицами и связями между ними в пустую базу данных, размещенную на сервере. смотрите по ссылке blogs.msdn.com/b/jorgepc/archive/2009/01/19/...
2
@windson Тогда просто запишите в базу данных. Также намного проще в эксплуатации.
Томас Стрингер
Да, если он пуст, то так же просто использовать опцию генерации скриптов. Я не уверен, почему не работает опция неработающего мастера, у меня установлены 2008 и 2012, и они есть в обоих местах.
Аарон Бертран

Ответы:

24

Это потому, что вы нажимаете не на ту вещь. Не правой кнопкой мыши Базы данных , но вы должны действительно щелкнуть правой кнопкой мыши базу данных , которую вы хотите скопировать, и под задачи есть опция для копирования базы данных ... . Другими словами, щелкните правой кнопкой мыши на Database1, и вы увидите эту опцию в разделе Задачи .

Однако, согласно комментарию @ AaronBertrand, настоятельно рекомендуется не использовать мастер копирования базы данных. Просто зайдите с бэкапом и восстановите. Это будет меньше головной боли.

Изменить : Кажется, что эта опция недоступна для SQL Server Express Edition. При подключении к экземпляру SQL Server Express нельзя запустить мастер копирования базы данных. Это связано с тем, что два основных способа выполнения этой задачи недоступны в SQL Server Express Edition. Во-первых, метод Detach / Reattach использует агент SQL (предположительно для копирования данных и файлов журналов из источника в место назначения), а SMO был удален из 2008 R2 , поэтому этот метод также недоступен в Express 2008 R2.

Томас Стрингер
источник
1
Я нажимаю на базу данных, которую я хочу скопировать только. Посмотрите на символ золотой цилиндр на изображении, которое указывает на базу данных.
@ Виндсон О, понятно. Хорошо, я бы сослался на ответ JNK, возможно, он попадает в одну из этих категорий. В любом случае, моей главной рекомендацией было бы просто «Сгенерировать сценарии ...» для базы данных. Это будет намного проще и менее подвержено ошибкам.
Томас Стрингер
Смотрите мое редактирование. Кажется, что этот мастер недоступен для экземпляров SQL Server Express.
Томас Стрингер
SMO был представлен с Sql Server 2005, DMO - устаревшая функция. SMO доступна для экспресс-выпуска Sql Server 2008R2.
Рой Гавиш
Любопытно, что мастер экспорта данных в SSMS Express прямо говорит: «Чтобы переместить или скопировать базы данных и их объекты с одного экземпляра сервера на другой, отмените этот мастер и используйте вместо этого мастер копирования базы данных».
ИЛИ Mapper
9

Я смог сделать копию базы данных, используя SQL Express, выбрав Backup Database, а затем выберите Restore from database. Выйти из простого

rekna
источник
6
Почему отрицательные? Ответ Томаса указывает на то, что в SQL Server Express нет мастера копирования базы данных, поэтому резервное копирование и восстановление в качестве нового имени представляется прямой альтернативой.
Мартин Смит
4

Убедитесь, что он не помечен для репликации или для восстановления / подозреваемого / загрузки / недоступного.

Со страницы msdn этого мастера:

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

  • Системные базы данных

  • Базы данных помечены для репликации.

  • Базы данных, помеченные как недоступные, загружаемые, автономные, восстанавливаемые, подозрительные или в аварийном режиме.

JNK
источник
Привет, я обеспечил все вышеперечисленные ограничения, чтобы получить возможность копирования базы данных. Но я не мог найти вариант еще.
Навуле
1
@windson На скриншоте вашего вопроса вы, похоже, используете редакцию SQL Server Express, поэтому мне любопытно, почему вы приняли этот ответ, когда вторая половина ответа Томаса выглядит более уместной.
Мартин Смит
3

Это странно ... но похоже, что эта опция удалена в SSMS 2008 R2. Я вижу это в SSMS 2005 (кстати, ссылка, которую вы разместили, использует то же самое) И поэтому я думаю, что ваш единственный вариант - просто написать сценарий базы данных или восстановить резервную копию с другим именем.

JackLock
источник
Это в моей локальной SSMS 2008 R2.
Томас Стрингер
1
Теперь это становится действительно странным. Я вижу эту опцию, если я подключаюсь к экземпляру SQL Server 2008 R2 dev ... Но если я подключаюсь к экземпляру Express Edition на удаленном сервере, я не вижу эту опцию (у меня нет локального экземпляра Express, поэтому я не уверен, что это тот же случай) .. Интересно, основана ли эта опция на экземпляре экземпляра (Dev, Express, Enterprise и т. д.)
JackLock
6
Я вижу то же самое. Похоже, что это не доступно с экземпляром SQL Server Express.
Томас Стрингер