table 的 UPDATE 触发器每天更新特定记录集数千次

UPDATE trigger for a table that is updating thousands of times daily on specific set of records

我正在寻找对我们公司表中一个非常具体的记录子集的更改。我意识到更新触发器可以完成此操作,但它每天会被调用数千次。

虽然我相当精通 SQL,但 T-SQL 和触发器有点超出我的正常范围。我不想写一些 运行 经常写的东西,但收效甚微(或者惹恼我们的 DBA)。

似乎解决方案是只提取我感兴趣的行然后基于它编写触发器的视图。好像是"bad form",告诉我有更好的方法可以完成同样的事情。

我希望使用触发器,因为我正在寻找可能会快速重置的值的变化。 (例如,它会变为 1,然后在几个小时后变回 0)。

此触发器将在 SQL SERVER EXPRESS 10.50.4000

上 运行

我主要只需要一个方向 - 没有那么多具体的代码。

您不能在基 table 行发生更改时触发的视图上创建触发器。

这不是 "bad form" 的问题,它根本不可能(视图中允许的唯一触发器是 INSTEAD OF 不执行您需要的触发器)。

A table 触发器检查列是否已从 0 更改为 1 不应导致大量开销 - 特别是如果每​​天只调用几千次。

它应该调用 UPDATE 函数来检查感兴趣的列是否已更改 - 如果没有立即退出。否则它应该在主键上加入 INSERTEDDELETED table 并检查任何行的新旧值是否与您尝试跟踪的模式相匹配。