【问题标题】:Update field in a table with trigger after insert and update插入和更新后使用触发器更新表中的字段
【发布时间】:2016-09-22 19:55:25
【问题描述】:

我在数据库中有一个触发器。

CREATE TRIGGER trigg_varer_ledit_iu
ON items
FOR INSERT, UPDATE
AS
BEGIN
    UPDATE items
    SET lastedit = GETDATE()
    WHERE itemnr IN (SELECT
    itemnr
    FROM inserted)
END;

效果很好。每次我更新并向项目插入新数据时,“lastEdit”字段都会更新。

但是:我在该表中有一些不应该触发更新这个 lastEdit 字段的特殊字段。我怎样才能做到这一点?

现在它适用于每个更新的字段。我需要让他们中的一些人远离马戏团。

【问题讨论】:

  • 我认为您可以在触发器本身中使用逻辑来检查所述列是否正在更新,然后在不进行任何处理的情况下返回
  • 有什么例子吗?
  • 您可以使用update(colname)函数检查单列或使用columns_updated()检查多列。

标签: sql-server database triggers


【解决方案1】:

您可以使用 if 构造进行检查。例如更新insert.column = deleted.column

相关问题 - Compare deleted and inserted table in SQL Server 2008

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 2014-07-10
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    相关资源
    最近更新 更多