Как вывести базу данных Microsoft SQL Server в сценарий SQL?

125

Есть ли способ экспортировать базу данных Microsoft SQL Server в сценарий SQL?

Я ищу что-то похожее на mysqldump, беря имя базы данных и создавая один скрипт, который воссоздает все таблицы, хранимые процедуры, заново вставляет все данные и т. Д.

Я видел http://vyaskn.tripod.com/code.htm#inserts , но в идеале я хочу, чтобы что-то воссоздало все (не только данные), которое работает за один шаг для создания окончательного сценария.

Мэтт Шеппард
источник
@Matt Да, он не экспортирует данные. Вот почему я упомянул, что вы должны объединить его со сценарием, который вы предложили. Этот метод создает скрипт в правильном порядке.
Хулио Сезар
На самом деле, в Mangement Studio 2008 вам просто нужно включить опцию «экспортировать данные», и скрипт будет содержать как схемы, так и операторы вставки.
user24161 10.02.10
@MattSheppard, пожалуйста, примите во внимание один из ответов
0:30

Ответы:

111

В SQL Server Management Studio щелкните правой кнопкой мыши свою базу данных и выберите Задачи / Создать сценарии. Следуйте указаниям мастера, и вы получите скрипт, воссоздающий структуру данных в правильном порядке в соответствии с внешними ключами. На шаге мастера под названием «Настройка параметров сценариев» выберите «Дополнительно» и измените параметр «Типы данных для сценария» на «Схема и данные»

СОВЕТ: На последнем шаге выберите «Сценарий для нового окна запроса», так будет работать намного быстрее.

Хулио Сезар
источник
18
Просто не забывайте заходить в расширенные опции и указывать в сценарии не только схему, но и данные.
RomanSt
2
@romkyns заслуживает всех голосов! «Типы данных для сценария» - это точное название опции. Вы захотите выбрать «Схема и данные».
Solidau
2
Основная проблема со сценариями, генерируемыми из SSMS, заключается в том, что они не упорядочены правильно, чтобы учитывать зависимости. Это не проблема для небольших баз данных, где вы можете сделать это вручную, но это определенно проблема, когда база данных получает более 50 объектов. До сих пор мы успешно использовали ApexSQL Script для этого. Это инструмент премиум-класса, но вы можете использовать его в пробном режиме, чтобы выполнить работу. Я думаю, что у Red Gate также есть похожий инструмент.
Дэвид Смитерс
34

Попробуйте мастер публикации баз данных Sql Server . Возможно, вам придется переупорядочить скрипт, чтобы он запускался за один раз, хотя из-за зависимостей, но он будет включать вашу схему и данные.

Если у вас не установлены объекты SQL XMO 2005, вы получите сообщение об ошибке при запуске мастера . Вам понадобится коллекция объектов управления Microsoft SQL Server 2005

Роб Аллен
источник
5
На самом деле вам не нужно переупорядочивать скрипт, потому что он удаляет все ограничения, создает схему, вставляет данные и, наконец, воссоздает ограничения.
Даниэль Сильвейра
Удивительно, это довольно опрятно
Beep Beep
Это отличный инструмент, хотя он поддерживает только SQL Server 2015. Как насчет 2008 и более поздних версий?
Нам G VU
12

Я нашел SQL Dumper довольно полезным. Это бесплатно, так что вы можете попробовать. Это позволяет вам выбирать таблицы и столбцы базы данных, представления и даже результаты пользовательских запросов в качестве операторов вставки SQL.

Марк Климент
источник
Последняя стабильная версия не работает с хранимыми процедурами.
VMAtm
1
Последняя версия может быть загружена с download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html
Raynet
7

Не найдя подходящего инструмента, я решил создать свой собственный: утилиту командной строки sqlserverdump. Проверьте это на http://sqlserverdump.codeplex.com/ . Он воссоздает схему и данные за один шаг.

Даниил
источник
6

Попробуйте DBSourceTools . Он предназначен для создания сценария исходной базы данных и повторного развертывания в целевой базе данных. Это скрипты схемы и данных.


источник
6

Рекомендуемое решение работает только на SQL 2000 и 2005. Если вы хотите сделать это на SQL 2008,

Вы можете сделать это с SQL 2008 без каких-либо других плагинов. Щелкните правой кнопкой мыши базу данных и выберите «Задачи -> Создать сценарии ...». Выберите базу данных и то, что вы хотите сделать резервную копию. Нажмите «Далее» и установите «Данные скрипта» на true.

Дополнительная документация по ссылке:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- хранимая процедура-функция-триггера-таблица-видовые ограничения, и-все-другие-база-данные объекты /

tzerb
источник
2

Мастер публикации баз данных SQL Server действительно является лучшим способом сделать это. Проблема в том, что он не работает на Windows 7. Мне пришлось использовать мой старый компьютер, чтобы использовать его. С другой стороны, он работает со старыми версиями SQL Server, такими как 2000.

Для более новых версий SQL и операционных систем это программное обеспечение может стоить изучить: http://sqlbackupandftp.com/


источник
0

Ombelt - хороший инструмент для экспорта БД MS SQL сервера. www.ombelt.com

очень похоже на другие свалки БД.

Работает для меня.

Тим Виллискрофт
источник
0

Проверьте проект дампа схемы Microsoft SQL Server ( mssql-schema-dumpинструмент на GitHub ).

Использование: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

Экспорт поддерживает:

  • БД: схема, пользовательские типы, пользовательские таблицы, триггеры, полнотекстовые каталоги, полнотекстовые стоп-листы, хранимые процедуры, функции
  • DB.Tables: схема, триггеры, индексы, DRI, статистика
  • DB.Views: схема, триггеры, индексы, DRI, статистика
kenorb
источник