create trigger tr_delete_a
on a
for delete
as
delete b where aid in (select id from deleted)
goB表(从表)的字段AID对应A表(主表)主健字段ID

解决方案 »

  1.   

    Yang_(扬帆破浪) :
    还是无法删除。我执行删除时有以下错误:
    DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_JOB_SIGHT'. The conflict occurred in database 'TourData', table 'JOB', column 'SIGHT'.
    The statement has been terminated.帮帮忙。这事很急呀。
      

  2.   

    Yang_(扬帆破浪)写的触发器是后触发器,你建立了外键约束,当然不行了
    create trigger tr_delete_a
    on a
    instead of delete
    as
    delete b where aid in (select id from deleted)
    go
      

  3.   

    其实如果你用的是sql server数据库的话,你可以建立主表和从表之间的关系图,那里面可以设置级联删除,级联更新的。用不着你去建触发器了
      

  4.   

    xingtian713(行天) :
    instead of delete
    这句话无法编译。我在SQL SERVER7.0中没有找到级联删除的选项,好象只有级联更新。
      

  5.   

    sql server 7 我这里没有装,我就不太清楚了,反正在sql server 2000里测试是行的通的!
      

  6.   

    我在2000下试过没有问题
    ALTER TABLE [dbo].[UserFriend] ADD 
    CONSTRAINT [FK_UserFriend_UserID2UserInfo_UserID] FOREIGN KEY 
    (
    [UserID]
    ) REFERENCES [dbo].[UserInfo] (
    [UserID]
    ) ON DELETE CASCADE 主要就是on delete cacade这一句了
      

  7.   

    其实我也遇到同样的问题了,我用的是sqlserver7,我做了好多实验,好象都不行,原因是有外键,系统根本就不让删除,就不能触发。我没有办法用了存储过程,实现方便简单。不过这样是不是影响了系统性能。
      

  8.   

    1.DROP FK OR disable FK
      alter table tablename
      drop constraint fk_..
      alter table tablename
      nocheck
      constraint fk_....2.create trigger for delete
      create trigger triggername
      on tablename(PK)
      for delete
      as 
      delete tablename(contain FK) where tablename.id=deleted.id
      go
    3.The best way using delete cascade.
      alter table tablename
      add constraint fk_.... 
      foregin key(column)
      references tablename(PK)(column)
      on delete cascade