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语句也能达到目的|???????????

解决方案 »

  1.   

    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
      

  2.   

    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中会出错
      

  3.   


    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
      

  4.   

    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
    ??????????
    那个p,d什么意思??
    看不懂这语句,能不能具体分析一下!!!!
    第二行中怎么又有from,还有什么as之类的,都什么意思????!!!