我们有一个包含两个字段的表 tbl_siteinfo:siteid (pk) 和 lastupdated。
我们还有其他几个表,例如 tbl_users、tbl_customers、tbl_prices、tbl_hours,它们包含不同类型的数据,但它们都以 siteid 作为主键。
我们想创建触发器,它将导致 tbl_siteinfo 中的 lastupdated 字段(对于正确的 siteid 行)在任何其他表上的任何插入/更新/删除操作时自动更新
我们有一个包含两个字段的表 tbl_siteinfo:siteid (pk) 和 lastupdated。
我们还有其他几个表,例如 tbl_users、tbl_customers、tbl_prices、tbl_hours,它们包含不同类型的数据,但它们都以 siteid 作为主键。
我们想创建触发器,它将导致 tbl_siteinfo 中的 lastupdated 字段(对于正确的 siteid 行)在任何其他表上的任何插入/更新/删除操作时自动更新
您可以访问通过 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 中选择)而不是加入。