Создайте SQL script, которые создают базу данных и таблицы

У меня есть база данных SQL и таблицы, которые я хотел бы реплицировать на другом SQL Server. Я хотел бы создать SQL script, который создает базу данных и таблицы в одном script.

Я могу создать "Создать" script с помощью SQL Management Studio для каждого случая (базы данных и таблиц), но я хотел бы знать, достаточно ли комбинировать оба сценария "Создать" в один script.

Спасибо.

Ответ 1

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

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

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

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

Generate SQL Server Scripts

Ответ 2

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

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

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

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

Ответ 3

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

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

  • Щелкните правой кнопкой мыши базу данных (а не таблицу) и выберите задачи → сгенерировать скрипты
  • Далее → выберите запрошенную таблицу/таблицы (из отдельных объектов базы данных)
  • Далее → нажмите advanced → типы данных в script= схема и данные

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

Ответ 4

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

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

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

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

c) Вернитесь к a), пока все не будет выполнено

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

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

Ответ 5

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

Ответ 6

Да, создайте базу данных, затем создайте таблицы, затем вставьте данные, все в один script. Делайте это все время