Поделиться через


Создание и изменение скриптов базы данных

Скрипты базы данных — это дополнительные файлы, содержащие инструкции Transact-SQL или служебные программы, такие как SQLCMD, не являющиеся частью определения схемы базы данных. Разработчик может использовать скрипты базы данных в рамках выполнения шага развертывания (скрипты, выполняемые перед развертыванием и скрипты, выполняемые после развертывания) или хранить общие скрипты управления в проекте базы данных.

При переименовании объекта базы данных можно прибегнуть к рефакторингу базы данных для автоматического обновления всех ссылок на этот объект в скрипте.

Скрипты развертывания

При построении проекта базы данных скрипт, выполняемый перед развертыванием, определения объектов базы данных и скрипт, выполняемый после развертывания, компилируются в один DBSCHEMA-файл схемы базы данных. Задать можно только один скрипт, выполняемый перед развертыванием, и один скрипт, выполняемый после развертывания, однако с помощью SQLCMD в каждый из них можно включить другие скрипты. Дополнительные сведения см. в разделе Including multiple scripts in the pre-deployment or post-deployment step. При построении проекта базы данных все включаемые сценарии сливаются в один скрипт построения.

По умолчанию в проекте базы данных содержится пустой скрипт, выполняемый перед развертыванием, и пустой скрипт, выполняемый после развертывания. Эти скрипты называются script.predeployment.sql и script.postdeployment.sql.

Вы указываете скрипт, выполняемый перед развертыванием, задав свойство Build Action файла скрипта равным "PreDeploy". Точно так же вы указываете скрипт, выполняемый после развертывания, задав свойство Build Action файла скрипта равным "PostDeploy". Если в качестве скрипта, выполняемого до или после развертывания, назначен сначала один скрипт, а потом другой, для первого скрипта автоматически устанавливается действие построения "Не в построении". Данное поведение реализовано потому, что для каждого проекта может существовать только один скрипт, выполняемый перед развертыванием, и один скрипт, выполняемый после развертывания.

Важно!

Если при изменении имен или характеристик объектов, на которые ссылаются скрипты развертывания, не обновить ссылки в этих скриптах, может произойти сбой развертывания.Допустим, например, что в таблицу скрипта, выполняемого после развертывания, вставлены данные.Если теперь переименовать эту таблицу, не обновляя скрипт, использование оператора INSERT приведет к ошибке.При переименовании таблицы с помощью рефакторинга переименования, скрипт развертывания обновляется автоматически.

Включение нескольких скриптов на шаге до или после развертывания

Для использования нескольких скриптов на шаге до или после развертывания необходимо назначить скрипт верхнего уровня, включающий другие скрипты, выполняемые до или после развертывания, с помощью следующей инструкции:

SQLCMD :r .\FileName.sql

Дополнительные сценарии

В дополнение к скриптам развертывания можно добавлять в проект базы данных другие сценарии общего назначения. Эти скрипты можно упорядочить, создав вложенные папки в папке скриптов проекта базы данных. При открытии любого из этих дополнительных скриптов в редакторе Transact-SQL можно подключиться к серверу базы данных и выполнить все или некоторые части этого скрипта. Например, при выполнении процедуры, производящей аудит выполняемых скриптов, этот подход удобен для хранения каждого скрипта со связанной с ним базой данных и помещения их в ту же систему управления версиями, в которой находится схема базы данных. У этих скриптов свойство Build Action имеет значение "Не в построении".

Общие задачи

В таблице приведено описание стандартных задач, которые могут оказаться полезными при реализации этого сценария, и ссылки на более подробные сведения о выполнении этих задач.

Задача

Справочные материалы

Определение скриптов, выполняемых до или после развертывания. В скрипты, выполняемые до или после развертывания базы данных можно добавлять инструкции Transact-SQL. При импорте объектов и параметров из базы данных скрипты развертывания могут обновляться инструкциями, не представленными в виде объектов базы данных, например разрешениями, определениями ролей или сигнатурами.

Определение скриптов управления или служебных программ. В проект базы данных можно добавлять скрипты управления и скрипты служебных программ. Кроме того, скрипты можно обновлять при рефакторинге объектов в проекте базы данных.

Возврат изменений. Скрипты можно вернуть в систему управления версиями для предоставления совместного доступа к ним другим участникам группы. При необходимости обслуживания более старой версии базы данных, можно сохранить и извлечь скрипты развертывания и управления, соответствующие этой версии, предварительно поместив текущие скрипты в систему управления версиями.

Устранение неполадок. Здесь можно получить дополнительные сведения об устранении типовых неполадок, связанных с базой данных и серверными проектами.

Связанные сценарии

См. также

Основные понятия

Написание и изменение кода базы данных

Переименование всех ссылок на объект базы данных

Построение и развертывание баз данных в изолированной среде разработки

Построение и развертывание баз данных в тестовой или производственной среде