仅将存储过程和视图中的更改从一个数据库发布到Azure Repos中的另一个数据库

时间:2019-11-15 10:52:30

标签: version-control azure-devops azure-sql-database azure-pipelines-release-pipeline azure-repos

我已经在Visual Studio中创建了一个数据库项目,其中包括架构,表,存储过程和表。我已将它们添加到Azure Repos中的源代码管理中。我只想将存储过程和视图发布到另一个数据库(它们具有相同的表模式)。

当项目在Azure管道中构建时,它将为所有数据库对象创建构建,而发布管道会将这些更改发布到数据库中。有什么方法可以排除表,而只能构建和发布存储过程和视图?

2 个答案:

答案 0 :(得分:0)

有两种方法

  1. 正如您所说的,第二个目标数据库已经存在相同的表,然后在发行版中使用参数/ p:CreateNewDatabase = False运行SQLPackage.exe,这意味着它将尝试更新数据库,并且只会添加不存在的对象(表,sps,视图,角色,用户等)或更新不同的对象(表,sps,视图,角色,用户等)。
  2. 如果您认为您的表可能有所不同,并且您不希望完全对其进行更新和排除,则将.sqlproj文件作为构建的一部分进行更新,以使构建操作为none而不是build {{1} }, 但请注意,如果在存储过程和/或视图中引用了表,则构建将失败

最好的方法是第一个。

答案 1 :(得分:0)

在Azure DevOps中,您可以转到发布管道,并将Additional SqlPackage.exe Arguments参数设置为/ p:ExcludeObjectTypes = Tables

enter image description here