Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获取触发触发器的操作的名称?_Sql_Sql Server_Tsql_Triggers - Fatal编程技术网

Sql 如何获取触发触发器的操作的名称?

Sql 如何获取触发触发器的操作的名称?,sql,sql-server,tsql,triggers,Sql,Sql Server,Tsql,Triggers,假设我有一个TSQL触发器 CREATE TRIGGER dbo.Trigger1 ON dbo.Table1 AFTER INSERT, UPDATE, DELETE 如何知道上述操作(插入、更新或删除)中的哪一个导致触发器触发?您可以检查是否存在插入的和删除的表 如果只有inserted中的值存在,则为insert。如果只有deleted中的值存在,则为delete。如果两者都是,那就是一个更新。具体来说,请参见以下答案:抱歉,必须编辑语义插入的和删除的将存在,根据操作的不同,它们可能

假设我有一个TSQL触发器

CREATE TRIGGER dbo.Trigger1 ON dbo.Table1
  AFTER INSERT, UPDATE, DELETE

如何知道上述操作(插入、更新或删除)中的哪一个导致触发器触发?

您可以检查是否存在
插入的
删除的


如果只有
inserted
中的值存在,则为insert。如果只有
deleted
中的值存在,则为delete。如果两者都是,那就是一个更新。

具体来说,请参见以下答案:抱歉,必须编辑语义<代码>插入的
删除的
将存在,根据操作的不同,它们可能是空的。@Aaron我实际上没有意识到,谢谢。