在一个表中使用触发器并更新另一个表

时间:2011-03-04 14:02:06

标签: sql sql-server triggers

CREATE TRIGGER dbo.updateTrigger
   ON  dbo.Education 
   AFTER UPDATE
   AS 
BEGIN
    SET NOCOUNT ON;
IF NOT (UPDATE( HighestDegreeDoc) OR UPDATE (GPA) OR UPDATE (CreditHours))
    RETURN
UPDATE dbo.School
set Uploaded =1
from dbo.School
JOIN inerted i ON i.Uploaded = School.Uploaded
END
GO

此代码有什么错误。我正在尝试更新学校表中的字段,在教育表中更新(HighestDegreeDoc,GPA,CrediHours)时上传的字段。注教育表有超过15个字段,(仅当这3个字段更改时,学校表中的上载字段更新)

2 个答案:

答案 0 :(得分:1)

只是一个猜测......

JOIN惰性i ON i.Uploaded = School.Uploaded

应该......

JOIN inserted i ON i.SchoolId = School.SchoolId

看起来更新是您正在设置的某种标志。您可能希望加入ID列。

答案 1 :(得分:0)

这只是一个拼写错误:它是join inserted;)

我不认为你的加入条件是好的。

你能告诉我们ddl吗?