要创建一个触发器,其中有两个表“ A”和“ B”,而表“ A”中已经有一些记录,因此我想在表“ B”中编写一个触发器,以检查条件是否表“ A”已经存在要插入的记录,因此如果表“ A”中不存在记录,则不要插入或触发表“ B”的触发器,然后触发触发器并将记录插入表中。
答案 0 :(得分:0)
由于SQL Server在插入之前没有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
您可以编写类似的INSTEAD OF UPDATE和INSTEAD OF DELETE触发器,以在尝试更新或删除A中的行时进行其他检查或操作。