触发器我不太熟,麻烦哪位大哥帮帮忙。。小弟在此谢过了。sql srv20001、两个结构一模一样的表:tbky_Alm,tbky_hisalm,当记录插入到tbky_alm表的时候,就自动被复制到tbky_hisalm中。(这个好象好写点哦,别急,再看看下面)2、两个结构一模一样的表:tbky_Alm,tbky_hisalm,还有一个tbky_syscfg表,表结构不同,但它们都有一个相同的字段JZNUM,当记录插入到tbky_alm表的时候,先读取该记录中字段JZNUM中的值,然后再看看tbky_syscfg表JZNUM字段所有记录中有没有这个值,如果有就将该记录复制到tbky_hisalm中,如果没有就删除它。(不知道我说得清楚不?)

解决方案 »

  1.   

    1、两个结构一模一样的表:tbky_Alm,tbky_hisalm,当记录插入到tbky_alm表的时候,
    就自动被复制到tbky_hisalm中。(这个好象好写点哦,别急,再看看下面) create trigger my_trig on tbky_alm for insert
    as
    begin
      insert into tbky_hisalm select * from inserted
    end
      

  2.   

    2、两个结构一模一样的表:tbky_Alm,tbky_hisalm,
    还有一个tbky_syscfg表,表结构不同,
    但它们都有一个相同的字段JZNUM,当记录插入到tbky_alm表的时候,
    先读取该记录中字段JZNUM中的值,然后再看看tbky_syscfg表JZNUM字段所有记录中有没有这个值,
    如果有就将该记录复制到tbky_hisalm中,如果没有就删除它。(不知道我说得清楚不?) create trigger my_trig on tbky_alm for insert
    as
    begin
      if exists (select 1 from tbky_syscfg m, inserted n where m.JZNUM = n.JZNUM)
         insert into tbky_hisalm select * from inserted
      else
         delete tbky_hisalm from tbky_hisalm m , inserted n where m.JZNUM = n.JZNUM
    end
      

  3.   

    1、两个结构一模一样的表:tbky_Alm,tbky_hisalm,
    当记录插入到tbky_alm表的时候,就自动被复制到tbky_hisalm中。
    (这个好象好写点哦,别急,再看看下面) create trigger udt_tbky_Alm_i 
    for insert 
    on tbky_Alm
    as
     begin 
          insert into tbky_hisalm
    select * from inserted  if @@error <> 0
    rollback
    end2、两个结构一模一样的表:tbky_Alm,tbky_hisalm,
    还有一个tbky_syscfg表,表结构不同,但它们都有一个相同的字段JZNUM,
    当记录插入到tbky_alm表的时候,
    先读取该记录中字段JZNUM中的值,
    然后再看看tbky_syscfg表JZNUM字段所有记录中有没有这个值,
    如果有就将该记录复制到tbky_hisalm中,如果没有就删除它。(不知道我说得清楚不?) create trigger udt_tbky_alm_i
    for insert 
    on tbky_hisalm
    as
     begin 
         declare @JZNUM varchar(20)
    select @JZNUM = JZNUM from inserted if exists ( select 1 from tbky_syscfg where  JZNUM = @JZNUM )
    begin 
     insert into tbky_hisalm
    select * from inserted 
    end
    else
    begin 
    rollback 
    end
    end