场景:
每次在表格中插入/更新/删除数据时,最多需要执行3项操作:
>数据需要记录到单独的表中
>必须对隐式相关数据强制执行参照完整性(我指的是应该与外键关系链接的数据,但不是:例如.更新Table1.Name时也应将Table2.Name更新为相同的值)
>需要执行任意业务逻辑
不得更改数据库的体系结构和模式,并且必须使用触发器来完成要求.
题
哪个选项更好?:
>每个操作(插入/更新/删除)的单个触发器,用于处理多个问题(日志,强制隐式参照完整性,并执行任意业务逻辑).此触发器可以命名为D_TableName(“D”表示删除).
>每个操作的多个触发器被关注隔离.他们可以命名为:
> D_TableName_Logging – 用于记录删除内容的日志
> D_TableName_RI
> D_TableName_BL
我更喜欢选项2,因为单个代码单元只有一个问题.我不是DBA,对sql Server足够了解让我变得危险.
是否有任何令人信服的理由来处理单个触发器中的所有问题?