如何为已删除的项目编写触发器?

Posted

技术标签:

【中文标题】如何为已删除的项目编写触发器?【英文标题】:How to write trigger for deleted item? 【发布时间】:2011-09-03 12:21:53 【问题描述】:

我已经创建了两个触发器:

create trigger [insert_history] on users
for insert
as
insert audit(action_type, table_name, object_name, time)
select 'Inserted', 'users', username, getdate()
from inserted

go

create trigger [update_history] on users
for update
as
insert audit(action_type, table_name, object_name, time)
select 'Updated', 'users', username, getdate()
from deleted

Inserted 从 inserated 中检索值。 更新从已删除中检索值。

delete语句呢?

【问题讨论】:

【参考方案1】:

这也将使用deleted 伪表。

它可以使用for update, delete 与您的update 触发器合并,因为您的更新触发器仅包含“之前”值,因此当前两者的代码相同。

编辑:虽然你的触发器需要检查 EXISTS(SELECT * FROM inserted) 是否确定操作字符串,所以可能分开会更容易。

【讨论】:

以上是关于如何为已删除的项目编写触发器?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 AS400 表创建 SQL 触发器

如何为组件的每个实例触发 vue 生命周期事件?

如何为转发域编写正确的 SPF TXT 记录

如何为我的触发器选择正确的行

如何为动态生成的<a>标签添加事件 ,只有点击时触发?

如何为 Postgresql 审计触发器设置用户名?