预先部署和后期部署脚本概述
适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric SQL 数据库
预先和后期部署脚本是包含在要在部署期间执行的项目中的 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
应从数据库模型生成中排除这些文件,方法是在 Visual Studio 中的文件属性中将 Build Action
属性设置为 None
,或者将文件的条目添加到 .sqlproj
文件中,并将 Build
属性设置为 None
。
...
<ItemGroup>
<Build Remove="scripts\script1.sql" />
<Build Remove="scripts\script2.sql" />
</ItemGroup>
</Project>
添加预先部署和后期部署脚本
在“解决方案资源管理器”中右键单击该项目,然后选择“添加”>“脚本”。 选择“预先部署脚本”或“后期部署脚本”。
脚本文件将添加到项目中并在查询编辑器中打开,你可在其中完成脚本。 每次部署项目时,都会在执行部署计划之前或之后执行此脚本。
在“解决方案资源管理器”中,右键单击项目节点,选择“添加”,然后选择“新项”。 在“添加新项”对话框中,选择“显示所有模板”, 然后,选择“表”。 选择“预先部署脚本”或“后期部署脚本”。
脚本文件将添加到项目中并在查询编辑器中打开,你可在其中完成脚本。 每次部署项目时,都会在执行部署计划之前或之后执行此脚本。
在 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
。