0

我们有一个包含两个字段的表 tbl_siteinfo:siteid (pk) 和 lastupdated。

我们还有其他几个表,例如 tbl_users、tbl_customers、tbl_prices、tbl_hours,它们包含不同类型的数据,但它们都以 siteid 作为主键。

我们想创建触发器,它将导致 tbl_siteinfo 中的 lastupdated 字段(对于正确的 siteid 行)在任何其他表上的任何插入/更新/删除操作时自动更新

4

1 回答 1

0

您可以访问通过 DELETED 和 INSERTED 表更新的记录中的数据。请参阅MSDN

所以用户表的触发器可能如下所示:

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(从插入的站点 ID 中选择)而不是加入。

SQLFiddle

于 2013-04-21T12:29:13.007 回答