SQL Server触发器从多个表中删除一条记录

时间:2011-08-09 16:55:00

标签: triggers

我知道这可以使用外键完成,但是当我插入新记录时,我无法添加它们或发生奇怪的事情。这个数据库中有很多存储过程,我不知道它们做了什么,因为我对存储过程一无所知。我希望有人可以帮我找出一个触发器,当我从Product表中删除它时,它将删除特定的ProductID。它也位于名为CompanyLink,TargetLink和CategoryLink的表中。

截至目前,当我从Product表中删除ProductID时,我必须从插入的其他3个表中手动删除它。

1 个答案:

答案 0 :(得分:8)

你可以通过这样的触发器来实现:

CREATE TRIGGER [dbo].[ProductDeleted]
ON [dbo].[Product]
AFTER DELETE
AS
BEGIN

   DELETE FROM CompanyLink WHERE ProductID = (SELECT TOP 1 ProductID FROM DELETED)
   DELETE FROM TargetLink WHERE ProductID = (SELECT TOP 1 ProductID FROM DELETED)

END 

显然语法可能不完美,但这很接近你需要的。