【发布时间】:2010-02-03 20:07:47
【问题描述】:
我们的生产数据库已有 5 到 7 年的历史,在此期间,许多人都参与其中,对架构进行了修改。我刚刚发现在我们的一些观点上有相反的触发器。我什至不知道这是可能的。对于那些在视图上使用过而不是触发器的人,您试图解决什么用例?考虑到这样做的可维护性,我很难看到这样做的好处。
非常感谢。
【问题讨论】:
标签: sql-server triggers
我们的生产数据库已有 5 到 7 年的历史,在此期间,许多人都参与其中,对架构进行了修改。我刚刚发现在我们的一些观点上有相反的触发器。我什至不知道这是可能的。对于那些在视图上使用过而不是触发器的人,您试图解决什么用例?考虑到这样做的可维护性,我很难看到这样做的好处。
非常感谢。
【问题讨论】:
标签: sql-server triggers
我没有使用它们,但我认为主要用途是允许在视图上执行 INSERT/UPDATE 语句,并让这些语句实际上在视图下插入/更新多个表。
我使用它们来提供与现有应用程序期望找到的表兼容的模式,但实际上在完全不同的模式上执行操作。这是将错误跟踪数据库系统集成到具有现有用户会员系统的数据库中。因此,错误跟踪系统期望找到的用户表被伪造为视图,并实施了 INSTEAD OF 触发器来更改已经存在的成员系统。
【讨论】:
如果您共享代码,我们可能会为您猜到用例。除了 Chris Shaffer 所说的之外,这些可能是为了强制执行特定的数据完整性要求(尽管老实说,我希望这些在表上而不是视图上)或向用户通常不知道的字段添加信息。
【讨论】: