【问题标题】:MS SQL Server 2008 changing inserted row value in triggerMS SQL Server 2008 在触发器中更改插入的行值
【发布时间】:2011-04-29 10:00:37
【问题描述】:

在 Oracle 中,我可以在插入/更新触发器中通过 :new.column_name = new_value 更改行值。 如何在 MS SQL 2008 触发器中做同样的事情?

【问题讨论】:

    标签: sql-server tsql triggers


    【解决方案1】:

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

    您必须更新目标表:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 2019-07-14
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      相关资源
      最近更新 更多