MS SQL Server 2008在触发器中更改插入的行值

时间:2011-04-29 10:00:38

标签: sql-server tsql triggers

在Oracle中,我可以在插入/更新触发器中更改行值:new.column_name = new_value。 如何在MS SQL 2008 Trigger中执行相同的操作?

1 个答案:

答案 0 :(得分:5)

Oracle不同,受影响的记录在集合中传递给SQL Server个触发器,引用为INSERTEDDELETED

您必须更新目标表:

UPDATE   m
SET      column_name = @new_value
FROM     INSERTED i
JOIN     mytable m
ON       m.id = i.id

或者更好的是,创建一个INSTEAD OF触发器。