SQL 插入更新和删除后的服务器触发器

SQL Server Trigger after insert update and delete

想创建一个触发器,其中我有两个 table "A" 和 "B" 和 table "A" 已经有一些记录,所以我想要在 table "B" 中写一个触发器,我想检查条件,如果 table "A" 已经存在正在插入的记录,那么不要插入或触发 table "B" 如果 table "A" 中不存在记录,则触发触发器并将记录插入 table.

由于 SQL 服务器没有 BEFORE INSERT 触发器来在插入完成之前更改该插入,我会使用 INSTEAD OF INSERT 触发器(执行您的触发器代码而不是通常的插入,因此您可以添加检查 and/or 其他操作)。

此触发器示例只会在 A 中不存在 B 中的行时插入这些行:

CREATE TRIGGER tr_a_ioi ON A
INSTEAD OF INSERT 
AS BEGIN 
  insert into A 
         select I.* 
         from inserted I
              left join B on B.PK_Field = I.PK_Field
         where B.PK_Field is null -- no corresponding row is found in B   
END

您可以编写类似的 INSTEAD OF UPDATE 和 INSTEAD OF DELETE 触发器来在尝试更新或删除 A 中的行时执行额外的检查或操作。