是什么定义了VS2012数据库项目中脚本执行的顺序?

时间:2014-03-03 14:48:23

标签: .net visual-studio-2012 database-project

数据库项目中有多种类型的脚本:PreDeploymentPostDeploymentBuildNotInBuild
虽然前两个只能存在于一个副本中,但构建脚本可能非常丰富。

我无法在执行buid脚本的时间和顺序中找到这些信息 这是否意味着构建脚本不必依赖于执行顺序或我错过了什么?

1 个答案:

答案 0 :(得分:1)

您可以将一个脚本标记为“PreDeployment”,将一个脚本标记为“PostDeployment”。这些脚本将使用SQLCMD语法包含其他脚本(构建类型“none”)作为该过程的一部分。

预编译脚本将被编译为包含您指定的顺序中包含的所有脚本。部署后脚本将以相同的方式编译。

要在部署前或部署后脚本中包含文件,请使用如下语法:

:r .\IncludeThisScript.sql

发布时,首先运行预部署脚本,然后进行数据库更改,然后运行部署后脚本。还值得注意的是,生成数据库更改脚本时不知道前/后部署脚本将执行或已完成的操作。如果在预部署脚本中创建表并尝试在项目中创建表,则项目可能会失败,因为该表已存在。