这个表有一个替代型的删除触发器,就是先删除另一个与此表相关的内容,再删除此表tb的内容(tb表共有13行,另一表也是13行,与这个表有一一对应的关系) 
---------------------
多半是这个的问题 

解决方案 »

  1.   

    set rowcount 1执行过这个?
      

  2.   

    CREATE TRIGGER [del_frmright] ON [dbo].[tb1] 
    instead of DELETE--替代型触发器
    AS
    begin
      declare @col varchar(50)
      select @col=tb1_col from deleted
      delete from tb2 where tb2_col=@col--先删tb2中的
      delete from tb1 where tb1_col=@col--后删tb1中的
    end
    说明:另一个表是tb2
    这么简单的触发器,我应该没有写错吧!为什么会这样,高人请指教,谢谢!
      

  3.   

    CREATE TRIGGER [del_frmright] ON [dbo].[tb1] 
    instead of DELETE--替代型触发器 
    AS 
    begin 
    --  declare @col varchar(50) 
    --  select @col=tb1_col from deleted 
      delete a
      from tb2 a
      where exists(select 1 from deleted where col = a.col)  --tb2_col=@col--先删tb2中的 
      delete a
      from tb1 a
      where exists(select 1 from deleted where col = a.col) --tb1_col=@col--后删tb1中的 
    end go----CREATE TRIGGER [del_frmright] ON [dbo].[tb1] 
    for DELETE--替代型触发器 
    AS 
    begin   delete a
      from tb2 a
      where exists(select 1 from deleted where col = a.col)  end go
      

  4.   

    谢谢happyflystone,的确如此,现在可以全删了,可以帮我解释一下为什么要你这样写才行吗?我没弄明白,本来我要给贴子加分的,可是提示要发贴一天后才可加分,不好意思了!
      

  5.   

    你用的select ,删除一条可以
    批量的就得用join 或exists删除,select 只能取到你删除的数据的最后一条的@col=tb1_col