我有一个表(即ReportData),其中包含一些计算数据 - >例如。课堂平均分数,学生人数,平均分等等。大量的报告就像数据一样。效果很好。
现在,在我的一些其他表(例如ClassRoom表)中,如果我在那里更改了一些数据,我需要更新ReportData表。
所以我认为如果我在ClassRoom表上执行任何INSERT,UPDATE或DELETE,那么我可以运行更新ReportData表数据的存储过程。
所以我认为触发器对此有好处。但是,我不确定。为什么?那么,用于执行所有自定义数学运算的存储过程实际上偶尔会查询ClassRoom表。那么它会访问最新的(例如更改的)数据吗?
例如。如果我从4 - >更改字段'NumberOfStudents' 5.存储过程(最终将在ClassRoom表上检查该字段,检索4或5作为数据吗?
谢谢:)
注意:为了讨论的目的,ClassRooms等只是假的。
答案 0 :(得分:1)
交易规则是您始终可以看到拥有对数据的更改。
答案 1 :(得分:0)
也许我对你的问题有一些误解,但是SQL Server 2008有两种类型的触发器:AFTER(在应用更改后触发)和INSTEAD OF(你可以在更改应用的表之前做你想做的事) 。 如果要更新ClassRoom表,然后使用新值重新计算ReportData表 - 只需使用AFTER触发器。