0

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

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

4

2 回答 2

0

有两种方法

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

最好的方法是第一个。

于 2019-11-17T00:50:53.980 回答
0

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

在此处输入图像描述

于 2019-12-06T09:53:09.587 回答