有before delete确的 trigger不就行了吗,具体语法我记不太清楚

解决方案 »

  1.   

    如果是sql server可以这样!!
    create trigger kkk
    on tablename
    for delete
    as
    begin
    insert into table1
    select * from deleted
    end
    如过是oracle就要用new old和before 级的row出发器具体看看帮助和sql server一样
      

  2.   

    检查一下你的触发器,你没有定义成for each row,即每行触发,改一下应该就行了
      

  3.   

    to okey(okey), 插入biao2的id号是多少??
      

  4.   

    我不熟悉SQL SERVER,你去HELP查一下CREATE TRIGGER的语法吧。
      

  5.   

    ???什么id 号?
    是这样的,如果delete from biao where id in(1,2,3,4)
    删除的id号是1和2,那么在biao2中插入的id号就是1和2
    同样:1,2,3的话,就插1,2,3
          2,4 。2,4
      

  6.   

    如果一次只删除一条记录,用触发器实现是没有问题的。
    但当一次删除多条记录时,只会在biao2中插入最后删除的一条记录,因为for delete的触发器是在删除完成后执行,而此时deleted表中只保存了最后删除的那条记录,所以只插入一条记录到biao2.
    你还是用存储过程实现吧。
    CREATE PROCEDURE ProcName
    AS
    begin tran
      insert into biao2 select * from biao where id in(1,2,3,4)
      delete from biao where id in(1,2,3,4)
    end tran
      

  7.   

    Oracle中可以这么写:
    CREATE OR REPLACE TRIGGER mytrigger 
        BEFORE DELETE
        ON mytable 
        FOR EACH ROW 
    AS.....这样的话每当一行被删除的时候,就执行一次trigger。
    不知道sql server有没有类似的功能。
      

  8.   

    就算不用触发器也可以解决啊。begin
    --插入要删除的记录到biao2,如果表机构不一样,你要调整一下sql
    insert into biao2 
       select * 
         from biao
        where id in (1,2,3,4);
    --删除记录
    delete from biao where id in(1,2,3,4);
    end;
      

  9.   

    我的问题解决了,本想在后台解决的,哎,算了,本人不太熟悉数据库技术,所以。。麻烦各位了,在前台我把delete from biao where id in(1,2,3,4)
    改为了delete from biao where id=id(i),让sql 一条一条的删就行了
    以后小弟有什么麻烦事的话,望老大们多多指教了~
    谢谢各位~给分了!