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
函数来检查感兴趣的列是否已更改 - 如果没有立即退出。否则它应该在主键上加入 INSERTED
和 DELETED
table 并检查任何行的新旧值是否与您尝试跟踪的模式相匹配。
我正在寻找对我们公司表中一个非常具体的记录子集的更改。我意识到更新触发器可以完成此操作,但它每天会被调用数千次。
虽然我相当精通 SQL,但 T-SQL 和触发器有点超出我的正常范围。我不想写一些 运行 经常写的东西,但收效甚微(或者惹恼我们的 DBA)。
似乎解决方案是只提取我感兴趣的行然后基于它编写触发器的视图。好像是"bad form",告诉我有更好的方法可以完成同样的事情。
我希望使用触发器,因为我正在寻找可能会快速重置的值的变化。 (例如,它会变为 1,然后在几个小时后变回 0)。
此触发器将在 SQL SERVER EXPRESS 10.50.4000
上 运行我主要只需要一个方向 - 没有那么多具体的代码。
您不能在基 table 行发生更改时触发的视图上创建触发器。
这不是 "bad form" 的问题,它根本不可能(视图中允许的唯一触发器是 INSTEAD OF
不执行您需要的触发器)。
A table 触发器检查列是否已从 0
更改为 1
不应导致大量开销 - 特别是如果每天只调用几千次。
它应该调用 UPDATE
函数来检查感兴趣的列是否已更改 - 如果没有立即退出。否则它应该在主键上加入 INSERTED
和 DELETED
table 并检查任何行的新旧值是否与您尝试跟踪的模式相匹配。