我有几个我不想在我的数据库中找到的关系(每周都会发现更多)。
例如:
如果此其他表中的此其他值设置为 true,则表小部件中的 A 列不能为空...
没有编写自己的系统来审核我的数据库并输出报告,有什么好的方法来解决这个问题吗?
我不得不认为我不是第一个遇到无法轻松编入 SQL Server 的业务限制的人......
注意:我不是在寻找执法系统。只是一个让我知道规则何时被打破的系统。
我有几个我不想在我的数据库中找到的关系(每周都会发现更多)。
例如:
如果此其他表中的此其他值设置为 true,则表小部件中的 A 列不能为空...
没有编写自己的系统来审核我的数据库并输出报告,有什么好的方法来解决这个问题吗?
我不得不认为我不是第一个遇到无法轻松编入 SQL Server 的业务限制的人......
注意:我不是在寻找执法系统。只是一个让我知道规则何时被打破的系统。
我的猜测是您的这些业务规则数量有限,并且这些规则非常简单,就像您在下面描述的那样。
在这种情况下,我只需为每个业务规则创建一个存储过程,该过程将报告所有违反此规则的行。然后我会在每天或每周的某个时间运行所有这些计划,或者给我我需要的数据。
现在,如果你真的有很多这样的方法,那么这种方法可能不是最好的,因为它会允许大量的维护,并且可能会导致一次运行大量存储过程的性能问题。
您不应该将业务逻辑编码到数据库中,但如果您坚持,您可以查看触发器,这样在插入/更新时您可以进行检查或验证,然后允许插入、回滚或执行 X
更新:
根据何时以及多久需要通知您何时违反规则,您可以做几件事之一
使用选项#1,一切都可以在 db 之外完成,恕我直言,如果你需要一个完整的“警报”系统,如果你只需要记录或将一些数据插入到某个跟踪表中,使用 #2 和 #3 可以很简单像电子邮件等,如果你想做一些花哨的事情,你可能需要使用SQL CLR,或者只是电子邮件,那么你也可以尝试SQL Mail