在Oracle中,我可以通过insert/update触发器使用:new.column_name = new_value来更改行值。 那么在MS SQL 2008触发器中,我该如何做到相同的效果呢?
在Oracle中,我可以通过insert/update触发器使用:new.column_name = new_value来更改行值。 那么在MS SQL 2008触发器中,我该如何做到相同的效果呢?
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
触发器。