Скопировать существующую базу данных в пустую в SQL Server [дубликат]

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

См. « Исключение NullReferenceException при проверке пользовательского AuthorizationAttribute » для несколько подробного примера.

85
задан tony 24 April 2011 в 15:24
поделиться

5 ответов

В SQL Server Management Studio вы можете щелкнуть правой кнопкой мыши по базе данных, которую хотите реплицировать, и выбрать «База данных сценариев как», чтобы инструмент создавал соответствующий файл SQL для репликации этой базы данных на другом сервере. Вы можете повторить этот процесс для каждой таблицы, которую хотите создать, а затем объединить файлы в один файл SQL. Не забудьте добавить инструкцию using после создания базы данных, но до создания любой таблицы;)

Обновление 2018-06-18 В более поздних версиях SQL Server вы можете получить это в одном файле в SSMS.

  1. Щелкните правой кнопкой мыши базу данных.
  2. Задачи
  3. Сгенерировать скрипты

Это запустит мастер где вы можете создать сценарий всей базы данных или просто частей. Кажется, что T-SQL не делает этого.

4
ответ дан Jason Geiger 23 August 2018 в 18:38
поделиться

Хотя ответ Клейтона доставит вас туда (в конце концов), в SQL2005 / 2008 / R2 / 2012 у вас есть гораздо более простой вариант:

Щелкните правой кнопкой мыши по базе данных, выберите Tasks, а затем Generate Scripts, который запустит мастер скриптов. Это позволяет сгенерировать один скрипт, который может воссоздать полную базу данных, включая таблицу / индексы & amp; ограничения / хранимые процедуры / функции / пользователи / и т. д. Существует множество опций, которые вы можете настроить для настройки вывода, но большинство из них является самоочевидным.

Если вы довольны параметрами по умолчанию, вы можете выполнить всю работу за считанные секунды .

Если вы хотите воссоздать данные в базе данных (как серия INSERTS), я бы также рекомендовал SSMS Tools Pack (бесплатный для версии SQL 2008, платный для SQL 2012).

359
ответ дан CJM 23 August 2018 в 18:38
поделиться

Отличное объяснение можно найти здесь: Сгенерировать скрипт в SQL Server Management Studio

Courtesy Ali Issa Вот что вам нужно сделать:

  1. Щелкните правой кнопкой мыши базу данных (а не таблицу) и выберите задачи -> сгенерировать скрипты
  2. Далее -> выбрать запрошенную таблицу / таблицы (из отдельных объектов базы данных)
  3. Далее -> нажмите advanced -> типы данных для скрипта = схема и данные

Если вы хотите создать скрипт, который просто генерирует таблицы (нет данные), вы можете пропустить расширенную часть инструкций!

8
ответ дан Community 23 August 2018 в 18:38
поделиться

Да, вы можете добавить столько операторов SQL в один скрипт, сколько пожелаете. Только одно замечание: порядок имеет значение. Вы не можете ВСТАВИТЬСЯ в таблицу, пока не СОЗДАЙТЕ ее; вы не можете установить внешний ключ до тех пор, пока не будет вставлен первичный ключ.

1
ответ дан duffymo 23 August 2018 в 18:38
поделиться

Не знаете, почему SSMS не учитывает порядок выполнения, но это просто не так. Это не проблема для небольших баз данных, но что, если ваша база данных имеет 200 объектов? В этом случае порядок выполнения имеет значение, потому что все это нелегко.

Для неупорядоченных скриптов, сгенерированных SSMS, вы можете перейти к

a) Выполнить скрипт (некоторые объекты будут вставлены в некоторые из них, будут некоторые ошибки)

b) Удалите все объекты из сценария, добавленного в базу данных

c) Вернитесь к a), пока все

Альтернативный вариант - использовать сторонний инструмент, такой как ApexSQL Script или любые другие инструменты, уже упомянутые в этом потоке (SSMS toolpack, Red Gate и другие).

Все они будут заботиться о зависимостях для вас и сэкономить вам еще больше времени.

6
ответ дан Shawna Jacobs 23 August 2018 в 18:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: