SQL Server触发器更新或插入

时间:2013-04-22 01:27:41

标签: sql sql-server-2008 triggers

这是我的表格:

报告表:

ReportID    Status
1           'out'
2           null

日志表

LogID       Status      ReportID
1           'out'       1

当我在Log表中插入新记录时,我想要一个触发器来更新相应的状态字段。示例:插入日志(LogID = 2,Status ='out',ReportID = 2)我想更新报告表以查找匹配的ReportID(2)fild for Status,以便它们匹配。

输出最终会像这样; 报告表:

ReportID    Status
1           'out'
2           'out'     //changed from null to out by the Log trigger

日志表

LogID       Status      ReportID
1           'out'       1
2           'out'       2

这里的问题是当第一个表有新插入或更新现有记录时,如何创建触发器以更新第二个表?

1 个答案:

答案 0 :(得分:3)

我想你可能正在寻找这样的东西:

create trigger updatereport on log 
after insert, update
as
update r
set status = i.status
from report r 
  inner join inserted i on r.reportid = i.reportid;

SQL Fiddle Demo