我正在考虑使用单个 SQL 触发器来处理 INSERT、UPDATE 和 DELETE 操作,作为审计过程的一部分。
是否有任何语句、函数或 @@ 变量我可以查询以找出触发触发器的操作类型?
我见过以下模式:
declare @type char(1)
if exists (select * from inserted)
if exists (select * from deleted)
select @Type = 'U'
else
select @Type = 'I'
else
select @Type = 'D'
但还有什么更直接或更明确的吗?
谢谢,
尼尔。
最佳答案
Oracle 有 INSERTING
, DELETING
, 和 UPDATING
条件谓词。 SQL Server 中没有等效项。 (虽然可以做 IF UPDATE (column)
)
与 MERGE
语句现在可以在同一操作中执行所有三个操作( 编辑 虽然 SQL Server 似乎会 divide it up into 3 operations )
关于sql - 什么操作类型在 SQL Server 2008 中调用了触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3068209/