关于触发器(50分)

  • 主题发起人 主题发起人 qzq
  • 开始时间 开始时间
Q

qzq

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现这样一个功能:
举例来说:某表有三个字段a,b,c,我想写触发器使得在insert 和update
时,使得c=a+b,但只更新新插入或更新过的记录,因为整个表数据量奇大,
全部更新太慢,那位能给个示范的例子?我觉得这很简单,我原来这样写:
.....
update 表1 set c=a+b where 表1.a=inserted.a and 表1.b=inserted.b
.....
但我老是通不过sql server的语法检查。对了,我用的是sql server 7.0.
 
我在 Interbase 中这样写,参考一下吧
CREATE TRIGGER TABLE1TRIGGER1 FOR TABLE1 BEFORE INSERT POSITION 0 AS
BEGIN
new.a1 = new.a2 + new.a3;
END
我觉得也许不应该用 update 语句,应该是直接写上字段名就可以了
 
update 表1 set 表1.c=inserted.a+inserted.b
from 表1,inserted
where 表1.a=inserted.a and 表1.b=inserted.b

//你这个好象有问题,好象会循环触发触发器.
 
多人接受答案了。
 
后退
顶部