Trigger definitions should always process multiple lines.
Taken from SQLTeam :
-- BAD Trigger code following: CREATE TRIGGER trg_Table1 ON Table1 For UPDATE AS DECLARE @var1 int, @var2 varchar(50) SELECT @var1 = Table1_ID, @var2 = Column2 FROM inserted UPDATE Table2 SET SomeColumn = @var2 WHERE Table1_ID = @var1
The above trigger will only work for the last row in the inserted table.
Here's how you should implement this:
CREATE TRIGGER trg_Table1 ON Table1 FOR UPDATE AS UPDATE t2 SET SomeColumn = i.SomeColumn FROM Table2 t2 INNER JOIN inserted i ON t2.Table1_ID = i.Table1_ID
Mitch wheat
source share