Скрипт базы данных sql server 2008
У меня есть база данных на сервере hosetd sql 2008.
Я внес некоторые изменения в схему в процессе разработки, но не хочу загружать это, поскольку хочу сохранить данные, которые находятся на сервере.
Есть ли скрипт, который я могу запустить, который будет создавать резервные копии данных в моих таблицах, предпочтительно также есть способ сохранить Shema тоже.
Затем я хочу иметь возможность загрузить изменения схемы из dev и восстановить все данные из моей резервной копии.
Я ищу бесплатный способ сделать это, поэтому я не могу купить какие-либо инструменты.
4 ответа
Ребята, SQL Server 2008 Management Studio действительно позволяет вам писать сценарии схемы и данных - это новая функция, которая была добавлена, но о которой мало кто знает.
В мастере сценариев в разделе "Параметры таблицы" установите для параметра "Данные сценария" значение "Истина" (по умолчанию это значение "Ложь"), и он будет генерировать операторы INSERT T-SQL со всеми данными, а также схему таблицы.
Это также обсуждалось ранее на SF в этом вопросе, и я только что написал об этом со снимком экрана - см. Схема сценариев и данные с SSMS в SQL 2008.
Надеюсь это поможет!
Рассматривали ли вы внедрение этих изменений в среде 'staging' или 'qa' рядом с вашей средой 'dev'?
Сделайте резервную копию вашей производственной базы данных. Восстановите его в новую базу данных в той же среде, где вы используете dev. Это даст вам возможность запустить эти сценарии обновления в зеркале живых данных. Тогда вы узнаете, насколько успешны ваши сценарии изменений.
Предполагая, что у вас есть права владельца базы данных, вы можете щелкнуть правой кнопкой мыши на имени базы данных и выбрать "Создать сценарии", чтобы создать сценарий. Это запустит мастер, который позволит вам выбрать, какие объекты вы хотите создать для сценария, и выгрузить этот сценарий в файл, окно запроса или буфер обмена.
В Management Studio нет автоматизированного способа выгрузки всех данных, но вам не нужно восстанавливать данные только для внесения изменений в схему - изменение определения таблицы обычно не приводит к удалению или изменению данных и других объектов. непосредственно коснитесь данных. Я бы просто использовал стандартную команду резервного копирования в Management Studio, чтобы сделать резервную копию, прежде чем вносить изменения в свой рабочий сервер.
"Генерировать сценарии" - это хорошо, но если вы хотите иметь возможность "различать" две версии схемы, я бы порекомендовал ScriptDB ( http://www.codeplex.com/ScriptDB). Он выводит практически тот же сценарий, что и "Генерировать сценарии" (он использует объекты управления SQL Server точно так же, как студия управления), но помещает выходные данные в каталоги с файлами в них, так же, как представление в студии управления. Это очень удобно для запуска различий между версиями схемы. Я обнаружил, пытаясь проанализировать вывод "Generate Scripts", что иногда большие блоки кода перемещаются между версиями, но в остальном не имеют никаких изменений (особенно когда это происходит из двух разных баз данных, в которых работали независимые разработчики).