我可以在 SQL Server 中删除之前检查约束吗?

2023-12-06

我有以下情况。一个主表和许多其他表通过外键链接在一起。现在,当我想删除主表中的一行时,将会发生 ConstraintsViolation,这是有意且良好的。

现在我希望能够在触发删除行事件之前检查 ConstraintsViolation 是否会发生。

这可能吗?


这个问题表面上看起来不错,但其实有一定的含义。

首先,您需要确保在读取这些关系的状态后,没有人可以更改它们,因此显然您需要使用事务并锁定有问题的行。

然后您需要一种方法来找出要检查的关系,正如我在此处的评论中看到的那样,您的问题是如果有人稍后添加新关系会发生什么。因此,您需要查询架构,或者可能从架构自动生成此代码,以便检测机制只需要在每次更改架构时运行。

现在,经过这次磨难之后,您获得的例外真的看起来那么昂贵吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 SQL Server 中删除之前检查约束吗? 的相关文章