现在有两个表,一个是职员信息表(zyinfo),有字段名:zyname,zyno,zyage,zysex,zyadd
    另一个表是职员业绩表(zyyj),有字段名:zybh,zyno,zy,zybt
    我在职员信息表里 创建一个触发器,目的要求当我删除‘职员信息表’的一条记录,与之对应的‘职员业绩表’里的一条记录也随之删除。两表的公共字段是zyno。
    alter trigger strger
    on zyinfo
    for delete 
     as
   delete from zyinfo 
  select * from zyinfo 
 where zyno not in(select zyno from zyyj  where zyno=zyinfo.zyno
  )
  go
 我试了用这段代码,可当我删除职员信息表里的一条记录时,在查看表,职员信息表里的数据都没了。  还有一种方法是用变量做的,我也想了解一下,但是我没想出,求高人指点一下小弟,在此谢谢了!

解决方案 »

  1.   


    CREATE TRIGER TRIGGER_NAME ON ZYINFO
    FOR DELETE
    AS
      DELETE ZYYJ 
      FROM ZYYJ AS Z JOIN DELETED AS D
         ON Z.ZYNO=D.ZYNO
      

  2.   


    alter trigger strger 
        on zyinfo 
        for delete 
        as 
      delete zyinfo  --你把整个表的数据都删除了
      --select * from zyinfo 
      where zyno not in(select zyno from zyyj) 
      go 
    or
    alter trigger strger 
        on zyinfo 
        for delete 
        as 
      delete zyinfo  --你把整个表的数据都删除了
      --select * from zyinfo 
      where zyno in(select zyno from deleted) 
      go 
      

  3.   

    delete zyinfo  
    -->
    DELETE ZYYJ