说明sql server7好像不支持级联删除!
如果你要那样我想最好些个触发器!
1。增加
create trigger kk on tab1
for insert
as
begin 
insert into tab2(no)
select no from inserted 
end
1。删除
create trigger kkk on tab1
for delete
as
begin
delete from tab2 where tab2.no=delete.no;
end
3。更新
create trigger kkkk on tab1
for update
as
begin
  update tab2
  set tab2.no=inserted.no 
  from deleted,inserted
  where tab2.no=deleted.no
end
如果这样最好吧你的外健约束去掉

解决方案 »

  1.   

    最简单的方法是先删除子表中相关记录,然后删除父表数据.想模拟级联删除用wwl007的做法.
      

  2.   

    guo的方法也有道理!那样做也不错!但是因为不能利用deleted和inserted代码也许麻烦一些
      

  3.   

    to ww1007(疑难杂症):
    SQL_SERVER2000下可以级联删除。
    既然SQL_SERVER7不支级联更新,为何又要有外码呢。好象这样只能限制删除,别的一无是出。我想不通。哎!
      

  4.   

    to wwl007(疑难杂症):
    我想还是编程实现级联删除算了。真没想到SQL_SERVER7居然不支持级联删除。作孽啊!
      

  5.   

    sql7的确是不支持级联删除,自己编码实现,wwl007(疑难杂症) 方法可以。也可以自己使用sql删除。
      

  6.   

    to wwl007(疑难杂症):
    创建触发器的时候提示有语法错误
    (error 156:Incorrect syntax new the eyword 'delete')
      

  7.   

    那里少了一个
    1。删除
    create trigger kkk on tab1
    for delete
    as
    begin
    delete from tab2 where tab2.no=deleted.no;
    end
    不要什么事情都靠别人!那样你不能锻炼自己!我这里少了一个ed就是这样!
      

  8.   

    wwl007(疑难杂症) :又要麻烦你了。50分一定奉上。
    CREATE trigger delete_fydj
    on jfxx1
    for delete
    as
    declare @jfno char(10)
    select @jfno=jfxx1.jfno
    from jfxx1,deleted
    where jfxx1.jfno=deleted.jfno
    if exists  
      (select * from fydj where fydj.jfno=@jfno)
         delete from fydj where fydj.jfno=@jfno
    当我删除jfxx1里的一条信息后,fydj里的那条记录没有被删除。为什么?