У меня есть база данных SQL и таблицы, которые я хотел бы воспроизвести на другом сервере SQL. Я хотел бы создать сценарий SQL, который создает базу данных и таблицы в одном сценарии.
Я могу создать сценарий «Создать» с помощью SQL Management Studio для каждого случая (база данных и таблицы), но я хотел бы знать, будет ли достаточно объединения обоих сценариев «Создать» в один сценарий.
Спасибо.
sql
sql-server
Тони
источник
источник
Ответы:
В SQL Server Management Studio вы можете щелкнуть правой кнопкой мыши базу данных, которую вы хотите реплицировать, и выбрать «Script Database as», чтобы инструмент создал соответствующий файл SQL для репликации этой базы данных на другой сервер. Вы можете повторить этот процесс для каждой таблицы, которую хотите создать, а затем объединить файлы в один файл SQL. Не забудьте добавить оператор using после создания базы данных, но до создания любой таблицы.
В более поздних версиях SQL Server вы можете получить это в одном файле в SSMS.
Это запустит мастер, в котором вы можете создать скрипт для всей базы данных или только для ее частей. Похоже, что для этого не существует способа T-SQL.
источник
Хотя ответ Клейтона приведет вас туда (в конечном итоге), в SQL2005 / 2008 / R2 / 2012 у вас есть гораздо более простой вариант:
Щелкните правой кнопкой мыши базу данных, выберите,
Tasks
а затемGenerate Scripts
запустит мастер сценариев. Это позволяет вам создать один скрипт, который может воссоздать полную базу данных, включая таблицы / индексы и ограничения / хранимые процедуры / функции / пользователей / и т. Д. Существует множество параметров, которые можно настроить для настройки вывода, но большинство из них не требует пояснений.Если вас устраивают параметры по умолчанию, вы можете выполнить всю работу за считанные секунды.
Если вы хотите воссоздать данные в базе данных (в виде серии INSERTS), я также рекомендую SSMS Tools Pack (бесплатно для версии SQL 2008, оплачивается для версии SQL 2012).
источник
Отличное объяснение можно найти здесь: Создать сценарий в SQL Server Management Studio
Предоставлено Али Иссой. Вот что вам нужно сделать:
Если вы хотите создать сценарий, который просто генерирует таблицы (без данных), вы можете пропустить расширенную часть инструкций!
источник
Не уверен, почему SSMS не учитывает порядок выполнения, но это просто не так. Это не проблема для небольших баз данных, но что, если в вашей базе данных 200 объектов? В этом случае порядок выполнения имеет значение, потому что пройти через все это непросто.
Для неупорядоченных скриптов, созданных SSMS, вы можете следовать
а) Выполнить скрипт (какие-то объекты будут вставлены как-то по обыкновению, будут ошибки)
б) Удалите из скрипта все объекты, которые были добавлены в базу данных
c) Вернитесь к a), пока все в конечном итоге не будет выполнено
Альтернативный вариант - использовать сторонний инструмент, такой как ApexSQL Script, или любые другие инструменты, уже упомянутые в этом потоке (пакет инструментов SSMS, Red Gate и другие).
Все это позаботится о зависимостях за вас и сэкономит вам еще больше времени.
источник
Да, вы можете добавить столько операторов SQL в один сценарий, сколько захотите. Только одно замечание: порядок имеет значение. Вы не можете ВСТАВИТЬ в таблицу, пока не СОЗДАЕТЕ ее; вы не можете установить внешний ключ, пока не будет вставлен первичный ключ.
источник