Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
База данных SQL в предварительной версии Microsoft Fabric
Скрипты, выполняемые до и после развертывания, являются SQL-скриптами, которые включены в проект для выполнения в процессе развертывания. Скрипты предварительного и последующего развертывания включены в .dacpac
, но они не компилируются и не проверяются на соответствие модели объектов базы данных. Скрипт предустановки выполняется перед выполнением плана развертывания, но план развертывания рассчитывается до выполнения скрипта. Скрипт постразвёртывания выполняется после завершения плана развертывания.
Пример и синтаксис файла проекта SQL.
Файл проекта SQL может иметь один скрипт предразвертывания и один скрипт постразвертывания.
Следующий пример из файла проекта SQL добавляет файл prep-db.sql
как скрипт для предварительного развертывания.
...
<ItemGroup>
<PreDeploy Include="prep-db.sql" />
</ItemGroup>
Пример ниже из файла SQL проекта добавляет файл populate-app-settings.sql
как сценарий после развертывания.
...
<ItemGroup>
<PostDeploy Include="populate-app-settings.sql" />
</ItemGroup>
</Project>
Несколько файлов могут быть выполнены как часть скрипта до или после развертывания с использованием скрипта SQLCMD, который вызывает каждый файл по порядку.
:r .\scripts\script1.sql
:r .\scripts\script2.sql
Файлы должны быть исключены из построения модели базы данных, установив свойство Build Action
на Remove
в свойствах файла в Visual Studio или добавив запись для файла в файле .sqlproj
с атрибутом Build
, установленным на Remove
. При построении проекта SQL дополнительные файлы объединяются в скрипт предварительного развертывания или после развертывания в .dacpac
пакете SDK проекта Microsoft.Build.Sql.
...
<ItemGroup>
<Build Remove="scripts\script1.sql" />
<Build Remove="scripts\script2.sql" />
</ItemGroup>
</Project>
Tip
После сборки проекта можно проверить скрипты предварительного развертывания и после развертывания, изменив расширение файла .dacpac
на .zip
и разархивировав .zip
в папку. Один .sql
файл присутствует для сценариев на этапе предварительного и постразвертывания, и он должен содержать весь Transact-SQL-код всех ссылочных файлов в соответствующем SQL-проекте.
Добавьте скрипты перед и после развертывания
В Solution Explorer щелкните правой кнопкой мыши по проекту и выберите Добавить>Скрипт. Выберите скрипт предварительного развертывания или скрипт после развертывания.
Файл скрипта добавляется в проект и открывается в редакторе запросов, где вы можете завершить скрипт. Этот скрипт будет выполняться до или после выполнения плана развёртывания каждый раз, когда проект развёртывается.
В Проводник решений щелкните правой кнопкой мыши на узле проекта и выберите Добавить, затем Новый элемент. В диалоговом окне Добавить новый элемент выберите Показать все шаблоны. затем Table. Выберите скрипт предварительного развертывания или скрипт после развертывания.
Файл скрипта добавляется в проект и открывается в редакторе запросов, где вы можете завершить скрипт. Этот скрипт будет выполняться до или после выполнения плана развёртывания каждый раз, когда проект развёртывается.
В представлении Database Projects в VS Code или Azure Data Studio щелкните правой кнопкой мыши на проекте и выберите Добавить скрипт перед развертыванием или Добавить скрипт после развертывания. Укажите имя скрипта без расширения файла.
Файл скрипта добавляется в проект и открывается в редакторе запросов, где вы можете завершить скрипт. Этот скрипт будет выполняться до или после выполнения плана развёртывания каждый раз, когда проект развёртывается.
Измените файл .sqlproj
напрямую, чтобы добавить скрипты для предварительной или постразвертывания. Добавьте элемент <PreDeploy>
или <PostDeploy>
в раздел <ItemGroup>
файла .sqlproj
.
Например, чтобы добавить скрипт scripts\before-script.sql
в наш проект в качестве скрипта для преддеплоймента:
...
<ItemGroup>
<PreDeploy Include="scripts\before-script.sql" />
</ItemGroup>
Этот скрипт scripts\before-script.sql
выполняется до того, как выполняется план развертывания, каждый раз, когда проект развертывается.