触发器的困惑!解决方案

触发器的困惑!!
mssql2000数据库

有两个表Product_Info和Product_Supply
Product_Info有Product_ID,Product_Name,Product_Price,Product_Unit字段,
Product_Supply有Product_ID,Product_Supply_Name,Product_Quantity字段
其中Product_Info表中Product_ID是主键
在delphi7中,比如我删除了Product_Info表中的一条Product_ID=123的记录,那么Product_Supply表中Product_ID=123的记录也要删除,该怎么做???

看过一本书,说什么数据的完整性之类的,好象要在sql2000中设置什么表的关联之类的,这样就可以一并删除!!

有的说可以用触发器,也可以达到目的!!


想问一下他们有什么优缺点??

是不是也可以不用上述的办法,我多写几条sql语句也能达到目的|???????????


------解决方案--------------------
CREATE TRIGGER Product_Info_Delete
ON Product_Info
FOR DELETE
AS
delete from P whrere p.Product_ID = d.Product_ID
FROM Product_Supply AS P INNER JOIN deleted AS d
ON P.Product_ID = d.Product_ID
------解决方案--------------------
CREATE TRIGGER Product_Info_Delete
ON Product_Info
FOR DELETE
AS
SET NOCOUNT ON
delete from P whrere p.Product_ID = d.Product_ID
FROM Product_Supply AS P INNER JOIN deleted AS d
ON P.Product_ID = d.Product_ID
SET NOCOUNT OFF
--关闭回响!否则在Delphi中会出错
------解决方案--------------------

delete from P whrere p.Product_ID = d.Product_ID
FROM Product_Supply AS P INNER JOIN deleted AS d
ON P.Product_ID = d.Product_ID

这样结果应该也可以的吧
delete
FROM Product_Supply AS P INNER JOIN deleted AS d
ON P.Product_ID = d.Product_ID