想要创建一个触发器,其中我有两个表“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] 删除。
我来说两句