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

打电话给麦达克

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

马克·吉洛

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

当 B 中不存在行时,此触发器示例只会在 A 中插入行:

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章