1、把刚插入的记录删除了
2、上面的还有问题,当@@ROWCOUNT>1时不能达到需要的目的

解决方案 »

  1.   

    你这个写法对的,使用instead of 触发器,但是只是删除了数据库中已有的数据,还未插入数据,再写一句
    insert into TC_EntImg(..........) select ......... from inserted
      

  2.   

    用触发器可以这样:
    CREATE TRIGGER [入口图像表——删除重复数据] ON dbo.TC_EntImg
    INSTEAD OF INSERT
    AS
    delete from TC_EntImg A,inserted B where  A.EStationCode=B.EStationCode and A.Serial=B.Serialinsert TC_EntImg select * from inserted
    end
    但这样做增加服务器负担,不如在前台先DELETE后insert。最好不要这样。
      

  3.   

    强烈建议在前台先DELETE后insert
      

  4.   

    teaism:
      使用你写的触发器,提示语法错误
      第4行 A 附近有语法错误
      关键字 end 附近有错误
      

  5.   

    CREATE TRIGGER [入口图像表——删除重复数据] ON dbo.TC_EntImg
    INSTEAD OF INSERT
    AS
    delete A from TC_EntImg A,inserted B where  A.EStationCode=B.EStationCode and A.Serial=B.Serialinsert TC_EntImg select * from insertedend
      

  6.   

    CREATE TRIGGER [入口图像表——删除重复数据] ON dbo.TC_EntImg
    INSTEAD OF INSERT
    AS
      delete TC_EntImg where  exists (select 1 from inserted where TC_EntImg.EStationCode=EStationCode and TC_EntImg.Serial=Serial)
      insert TC_EntIma select * from inserted
      

  7.   

    1。不用判断 exists,直接delete就可以了。这样提高了一倍的速度。
    2。最好不要“先删除再插入”,应该把判断insert还是update的责任推卸给客户端。