更新语句内部触发器不更新SQL Server 2008中的所有行

时间:2014-09-15 14:22:30

标签: sql-server

我有两个table.table 1有更新触发器,它将更新表中的详细信息。但是table1在table1中有很多行具有相同的键。(table1中的键是primarykey,但在表2中是foriegn键)。更新触发器仅更新table2中的一行,而不更新具有相同键的所有行。

Update  table2 set colu1 = "value" where  colu2 = primarykey

1 个答案:

答案 0 :(得分:0)

在不了解你的桌子的情况下,我认为你想要这样的东西:

CREATE TRIGGER Table1Trigger ON table1
AFTER UPDATE AS
IF UPDATE(col) 
BEGIN
    UPDATE table2
    SET colu1 = 'value'
    FROM table2 
    INNER JOIN inserted ON table2.colu2 = inserted.[key]
END

这会将colu1table2的值更改为' Value'对于具有键值的所有行,如果更新更改列table1,则该值对应于col中更新的行的键值。您可能需要更改列名以匹配表中的任何内容。