Visual Studio 编辑sql模式比较(.scmp),以便筛选某些表和存储的过程

pcww981p  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(162)

几个月以来,我们一直在为我们的SQL Server对象使用(VS)数据库解决方案。当然,模式比较是我们经常使用的功能。
我得到了团队的问题,如果我们可以修改模式比较脚本(.scmp),以便某些表和存储过程被排除在比较之外。这个脚本将是解决方案的一部分,并由所有团队成员使用。
例如,名称中包含'_BU'(通配符)的每个表。示例:DimCustomer_BU20220419这意味着应该排除备份表-〉
我看到这是完全可能的APEX SQL,但我宁愿留在VS/Devops。
先谢谢你了。

yws3nbqq

yws3nbqq1#

是,否:

  • 是的,您可以从比较中排除所需的对象,无论是在源端还是目标端,或者两者都是(请参阅下面的SCMP)
  • 不,不能使用通配符
<?xml version="1.0" encoding="utf-8"?>
<SchemaComparison>
  <Version>10</Version>
  <ExcludedSourceElements>
    <SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlProcedure, Microsoft.Data.Tools.Schema.Sql, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <Name>dbo</Name>
      <Name>MySuperbStoredProc</Name>
    </SelectedItem>
  </ExcludedSourceElements>
  <ExcludedTargetElements>
    <SelectedItem Type="Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlProcedure, Microsoft.Data.Tools.Schema.Sql, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <Name>dbo</Name>
      <Name>MySuperbStoredProc</Name>
    </SelectedItem>
  </ExcludedTargetElements>
</SchemaComparison>

首先,没有关于.scmp XML模式的文档,因此手动更改它看起来不可行。修改它的最简单方法是在Visual Studio SSDT中可视化地运行比较,然后右键单击要排除的更改。它可以在所需的级别完成,例如表或列级别。
使用通配符没有简单的解决方案,但您可以通过使用DAC类(例如Schema Comparison class)进行编程。例如,您可以通过编程方式加载.scmp文件,应用一些更改并保存更新的版本。这不是最简单的,但可行。

相关问题