如何将基于 SQL 的完整性检查添加到 SSDT (.sqlproj)?

How to add SQL-based integrity checks to SSDT (.sqlproj)?

提问人:Ivan Koshelev 提问时间:8/21/2023 更新时间:8/22/2023 访问量:21

问:

我正在使用 Microsoft SSDT 对数据库架构进行版本控制。我有一个脚本来自动生成一些触发器,我需要确保我们不会忘记在表更改时运行它。我在PostDeploy脚本中添加了一个部分,该脚本采用原始触发器定义,将它们与现有触发器定义进行比较,如果它们不匹配,则引发错误,但是该错误不会中止PostDeploy脚本,我什至没有看到它或在PRINT消息之前(我什至尝试在脚本开头抛出错误)。我怀疑这是因为脚本在 SQLCMD 模式下运行。有什么方法可以强制此脚本失败并引起用户注意原因?

我还考虑将此完整性检查添加到 SSDT 项目本身,假设我可以以某种方式针对 .dacpac 运行 SQL。或者,我正在查看 SSDT 单元测试,但看起来它们需要单独的数据库才能工作。build

将此类完整性检查添加到 SSDT 的惯用方法是什么,最好不需要访问现有数据库?

sql-server-data-tools 完整性

评论


答:

0赞 Ivan Koshelev 8/22/2023 #1

我们最终在构建管道中运行了单元测试项目。这不是一个 smoot hsetup,但它有效。