什么操作类型在SQL Server 2008中调用了一个触发器?

我正在考虑一个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(列))

现在使用MERGE语句可以在同一个操作中完成所有三个操作(编辑虽然看起来SQL Server将会divide it up into 3 operations)

点赞