我在数据库中有两个表,我想在带有触发器的级联上删除。我使用在关系中使用级联删除,但在这种情况下我有更多的表,SQL Server不允许我在关系中设置cascde删除,因为它会创建一个循环。
所以我想创建一个触发器来删除表中的寄存器,我无法在关系中设置级联删除。
我使用此触发器:
CREATE TRIGGER trg_myTrigger
ON Componentes
AFTER DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
Delete from mytable2 where IDParentFromTable1 IN(select deleted.IDtable1 from deleted)
END
GO
但是我得到了外键的错误。
我真的不知道为什么会收到这个错误。
感谢。
答案 0 :(得分:2)
触发器在DELETE之后触发,因此外键错误发生在触发器运行之前。
您需要使用
之一