我们有一个包含两个字段的表tbl_siteinfo:siteid(pk)和lastupdated。
我们还有其他几个表,例如tbl_users,tbl_customers,tbl_prices,tbl_hours,它们包含不同类型的数据,但所有这些表都将siteid作为主键。
我们想要创建触发器,这将导致tbl_siteinfo中的lastupdated字段(对于正确的siteid行)在任何其他表上的任何插入/更新/删除操作上自动更新
答案 0 :(得分:0)
您可以访问通过DELETED和INSERTED表更新的记录中的数据。请参阅MSDN。
因此,users表的触发器可能如下所示:
CREATE TRIGGER tr_users_siteinfo ON tbl_users
FOR UPDATE
AS
BEGIN
UPDATE tbl_siteinfo SET lastupdated = GETDATE()
FROM inserted JOIN tbl_siteinfo ON inserted.siteid = tbl_siteinfo.siteid
END
GO
或者你可以做一个WHERE siteid IN(选择siteid FROM inserted)而不是加入。