【发布时间】:2011-04-29 10:00:37
【问题描述】:
在 Oracle 中,我可以在插入/更新触发器中通过 :new.column_name = new_value 更改行值。 如何在 MS SQL 2008 触发器中做同样的事情?
【问题讨论】:
标签: sql-server tsql triggers
在 Oracle 中,我可以在插入/更新触发器中通过 :new.column_name = new_value 更改行值。 如何在 MS SQL 2008 触发器中做同样的事情?
【问题讨论】:
标签: sql-server tsql triggers
与Oracle 不同,受影响的记录以集合的形式传递给SQL Server 触发器,引用为INSERTED 和DELETED。
您必须更新目标表:
UPDATE m
SET column_name = @new_value
FROM INSERTED i
JOIN mytable m
ON m.id = i.id
或者,更好的是,创建一个INSTEAD OF 触发器。
【讨论】: