2009-07-23 132 views
0

我有一个表(即ReportData),其中包含一些计算的数据 - >例如。教室平均分数,学生数量,平均分数等等。大量的报告如数据。很棒。我可以在这种情况下使用触发器吗?

现在,在我的其他一些表(例如ClassRoom表)中,如果我在那里更改某些数据,我需要更新ReportData表。

所以我认为,如果我在ClassRoom表上做任何INSERT,UPDATE或DELETE,那么我可以运行我更新ReportData表的数据的存储过程。

所以我认为一个触发器对此很好。但是,我不确定。为什么?那么,用于执行所有自定义数学运算的存储过程实际上会偶尔查询ClassRoom表。那么它会访问最近的(如Changed)数据吗?

例如。如果我改变字段'NumberOfStudents'从4 - > 5.请问存储过程(这将最终检查该字段,在ClassRoom表上,检索4或5作为数据?

谢谢:)

注:ClassRooms等只是为了讨论的目的而伪造的。

回答

1

交易规则是您可以随时看到您自己对数据的更改。

0

也许我对你的问题有一些误解,但SQL Server 2008有两种类型的触发器:AFTER(在应用更改后触发)和INSTEAD OF(你可以在更改表之前执行所需的操作)。 如果您想更新ClassRoom表,然后使用新值重新计算ReportData表 - 只需使用AFTER触发器即可。

相关问题