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

Tro*_*ydm 3 t-sql sql-server triggers

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

Qua*_*noi 5

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

您必须更新目标表:

UPDATE   m
SET      column_name = @new_value
FROM     INSERTED i
JOIN     mytable m
ON       m.id = i.id
Run Code Online (Sandbox Code Playgroud)

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