我用表格列表
studentId
,
studentName
,
markOne
,
markTwo
,
total
。
我通过添加total
和markOne
创建了一个计算markTwo
的触发器。
每当我更新任何一个标记时,它都会自动更新total
字段。
ASK:
但是这个过程可以使用存储过程来实现,那么为什么我们选择触发而不是存储过程?
答案 0 :(得分:4)
为什么要使用存储过程或触发器?最好的解决方案是使用计算列:
alter table t add total as (markOne + markTwo);
每当您引用total
时,都会正确计算值。
注意:您需要从表中删除表或重新创建没有实际列的表。
答案 1 :(得分:0)
在您的情况下,您不需要触发器。您只想更新总字段,因此请勿使用触发器。
在这种情况下触发使用,当你为markone,marktwo添加数据时,它会影响很多表。在超过2-3个表中,你需要在两个字段上更新数据库。然后你可以使用triggers.In你可以简单地使用存储过程。
谢谢。
答案 2 :(得分:0)
您可以为此创建视图,因此您无需更改表格。
create view vwMyTable as
select studentId,
studentName,
markOne,
markTwo,
(markOne + markTwo) as Total
from myTable
然后你可以简单地做
select * from vwMyTable