插入后,用两列主键更新时间戳触发器

2023-12-06

我有一个简单的详细信息表,如下所示:

listid
custid
status
last_changed

主键由两者组成listid and custid.

现在我正在尝试设置一个触发器来设置last_changed每次发生插入或更新时,将列更改为当前日期时间。我发现了很多关于如何使用单个 PK 列执行此操作的信息,但是对于多个 PK,如何从 INSERTED 表中正确指定 PK 会变得令人困惑。

触发器必须在 SQL Server 2005/2008/R2 中工作。

感谢您提供有效的触发代码!

额外的好处是还要检查数据是否确实被更改,并且在这种情况下仅更新 last_changed,但为了真正理解如何正确编码主要问题,我希望将其视为一个单独的代码块(如果有的话)。


嗯......仅仅因为主键由两列组成,应该不会产生很大的差异......

CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE 
AS
  UPDATE dbo.YourTable
  SET last_changed = GETDATE()
  FROM Inserted i
  WHERE dbo.YourTable.listid = i.listid AND dbo.YourTable.custid = i.custid

你只需要在两个表之间建立JOIN(你自己的数据表和Inserted伪表)在两列上...

我是不是错过了什么?? ……

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

插入后,用两列主键更新时间戳触发器 的相关文章

随机推荐