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

时间:2011-09-03 12:21:53

标签: sql sql-server triggers

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

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

已插入检索已编号的值。 更新从已删除的值中检索值。

删除声明怎么样?

1 个答案:

答案 0 :(得分:2)

那也会使用deleted伪。

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

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