是同时触发,因为在sql server没有行级触发器,所以是按照语句来的,一个语句,就触发一次。

解决方案 »

  1.   

    试试这个:create trigger dbo.trigger_abc_delete
    on dbo.abc
    after delete 
    asdelete cde
    from deleted d
    where cde.b = d.bgo
      

  2.   

    呵呵,给你一个完整的例子:
    create table abc( A int, B varchar(10),  C varchar(10))insert into abc
    select 1       ,'A1',      'A1' union all
    select 2       ,'A1',      'B3' union all
    select 3       ,'A1',      'B4' union all
    select 4       ,'A1',      'B5' union all
    select 5       ,'A1',      'B6'
    create table cde(b varchar(10))insert Into cde
    select 'A1' union all
    select 'A2' union all
    select 'A1' 
    go
    --建立delete触发器
    create trigger dbo.trigger_abc_delete
    on dbo.abc
    after delete 
    asdelete cde
    from deleted d
    where cde.b = d.bgo
    --执行delete语句,触发delete触发器
    DELETE FROM ABC WHERE B='A1'
    --都delete了
    select *
    from abc
    --删除了b等于A1的记录
    select *
    from cde
    /*
    b
    A2
    */
      

  3.   

    --建立delete触发器
    create trigger dbo.trigger_abc_delete
    on dbo.abc  --1、这个是删除abc表的时候,触发;
    after delete 
    as
     
    delete cde
    from deleted d
    where cde.b = d.b  --这个是逻辑; d.b 这个就是删除条件的值。 
    go
      

  4.   


    把你的删除条件加上就可以的,比如在触发器中:create trigger dbo.trigger_abc_delete
    on dbo.abc
    after delete 
    asdelete cde
    from deleted d
    where cde.b = d.b and xxx = xx  --删除条件go
      

  5.   

    按执行的语句触发,只触发一次,但deleted,inserted,updaated,里是影响的行数