Как я могу создать script моей базы данных, как есть?
Моей основной причиной этого является отслеживание изменений схемы базы данных для моего приложения. В SQL Server Management Studio я могу сгенерировать создание script, которое создает базу данных, но не содержит никаких тестовых данных. В идеале, когда запускается script, он должен DROP существующей базы данных (предположив, что он уже существует), а затем воссоздает его с помощью этой новой script, содержащей изменения схемы и тестовые данные с моей машины разработки.
Итак, как я могу создать script, который будет создавать базу данных со всеми таблицами, хранимыми процедурами, триггерами, представлениями, тестовыми данными и т.д.
Я пробовал использовать функции импорта/экспорта, но это не хорошо, потому что похоже, что он не копирует хранимые процедуры. Плюс было бы неплохо иметь script, поэтому я могу отслеживать изменения схемы с помощью меркуриального.
Я использую SQL Server Express 2008 R2 вместе с SQL Server Management Studio.
Ответы
Ответ 1
Вы не указали, какая версия SQL Server, но в SQL 2008 это очень просто
SQL 2008
Развернуть базы данных
База данных правой кнопкой мыши
Выберите "Задачи" > "Сгенерировать скрипты"
Генерировать и Откроется диалоговое окно публикации
Выберите объекты (т.е. таблицы, procs и т.д.)
Нажмите "Далее" в "Сценарии установки"
Опции выберите" Дополнительные параметры "
Общие выберите SCRIPT DROP AND CREATE - SCRIPT DROP AND CREATE
Типы данных SCRIPT - схема и Данные
Закрыть расширенное окно
Выберите сохранить в файл.
Ответ 2
Я написал утилиту командной строки с открытым исходным кодом с именем SchemaZen, которая делает это. Это намного быстрее, чем скрипты из студии управления, и выход - более дружественный к версии. Он поддерживает сценарии как схемы, так и данных.
Для запуска запуска скриптов:
schemazen.exe script --server localhost --database db --scriptDir c:\somedir
Затем для воссоздания базы данных из запуска скриптов:
schemazen.exe create --server localhost --database db --scriptDir c:\somedir
Ответ 3
Следите за различием в настройке базы данных. Если вы разрабатываете базу данных с нечувствительным к регистру сопоставлением и пытаетесь запустить сценарии, созданные SSMS, в качестве базы данных с сортировкой по регистру, тогда ошибки в случае будут нарушать сценарии.
Ответ 4
Попробуйте Мастер публикации базы данных Microsoft SQL Server. Это мощный гибкий инструмент для сценариев/данных rom SQL Server.
Ответ 5
Лично я использую Проект Microsoft Visual Studio 2010 Database с репозиторием исходного кода (SVN) для отслеживания изменений в схеме.
Ответ 6
Обычно я создаю резервные копии базы данных, прежде чем запускать новую разработку.
лучший способ - восстановить резервную копию при необходимости, я не знаю, как это сделать с помощью script!