2009-07-23 130 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觸發器即可。

相關問題