我定义了一个Insert触发器,我想在这个触发器中将刚插入的那条记录插入到另外的一个表中去,
可是我不知道怎获取刚插入记录各列的值这个问题怎么解决啊!
多谢指点!

解决方案 »

  1.   

    insert into 另一个表
    select ... from inserted
      

  2.   

    Inserted.【你要得到插入的那列的值】
    CREATE TRIGGER [tr_insertzybzfp] ON [dbo].[zybzfpdj]
    FOR INSERT
    AS
    BEGIN
      IF  update(bzje)
      begin  
             declare @li_lx int
             declare @li_c  int
             declare @ld_pjzylj numeric(10,2)--省级住院补助累计
             declare @ld_sjzylj numeric(10,2)--市级住院补助累计
             declare @ld_xjzylj numeric(10,2)--县级住院补助累计
             declare @ld_zjzylj numeric(10,2)--乡(镇)级住院补助累计
             declare @ld_cjzylj numeric(10,2)--村级住院补助累计
             declare @ld_qtzylj numeric(10,2)--其它级住院补助累计
             
             select @ld_pjzylj=0,@ld_sjzylj=0,@ld_xjzylj=0,@ld_zjzylj=0,@ld_cjzylj=0,@ld_qtzylj=0
             
             select @li_lx=lx
             from ddjgzl,inserted
             where ddjgzl.ddbh=inserted.ddbh
             select @li_c=@@rowcount
             if @@error<>0
             begin
                return
             end         if @li_lx=1 --省级
             begin
                 update cbryzl_cy with (holdlock) set zylj=isnull(zylj,0)+isnull(Inserted.bzje,0),pjzylj=isnull(pjzylj,0)+isnull(Inserted.bzje,0),zycs=isnull(zycs,0)+isnull(Inserted.bccs,0)
                 from cbryzl_cy,inserted
                 where cbryzl_cy.cybm=inserted.cybm
             end
               END
    END
      

  3.   

    表test1,字段:a1,b1,c1,d1
    表test2,字段:a1,b1,c1,d1
    当插入test1时,test2也插入了数据。
    CREATE TRIGGER tri_insert ON [dbo].[test1] 
    FOR INSERT 
    AS
    if @@rowcount=0 return
                   begin 
                     insert [dbo].[test2] 
                     select a1,b1,c1,d1
                     from inserted
                   end
      

  4.   

    insert into OtherTable
    select ... from inserted
      

  5.   

    流浪的天使   回答真全啊,呵呵~~~新插入的记录就在inserted表里这个临时表只能在触发器里用