日期:2014-05-18  浏览次数:20514 次

一个触发器的写法
有一张表table1
id     flag
  1         0
  2         1

如果table1的flag字段改为2时触发

修改另外一张表table2的Rec_stat号为2,通过id来关联
id     Rec_stat
  2           1

------解决方案--------------------
create trigger tu_table1 on table1
for update
as
if update(flag) and exists(select 1 from inserted i,deleted d where i.id=d.id and i.flag=2 and isnull(d.flag,0) <> 2)
begin
update table2
set Rec_start=i.flag
from table2,inserted i,deleted d
where table2.id=i.id and i.id=d.id and i.flag=2 and isnull(d.flag,0) <> 2
end
------解决方案--------------------
create trigger tu_table1 on table1
for update
as
if update(flag) and exists(select 1 from inserted i,deleted d where i.id=d.id and i.flag=2 and isnull(d.flag,0) <> 2)
begin
update table2
set Rec_start=i.flag
from table2,inserted i,deleted d
where table2.bill_no=i.form_id and i.id=d.id and i.flag=2 and isnull(d.flag,0) <> 2
and table2.idate=(select max(a.idate) from table2 a where a.bill_no=table2.bill_no)
end