/* ==========================================================   */
/*   10、为JH_ZZJG_ZZJGDMB增加新触发器ti_JH_ZZJG_ZZJGDMB                */
/* ==========================================================   */
CREATE TRIGGER ti_JH_ZZJG_ZZJGDMB AFTER INSERt ON JH_ZZJG_ZZJGDMB    
   FOR  EACH ROW 
BEGIN  
  
        declare   @numrows int    
        declare   @dwdm  varchar(80),@dwmc varchar(80)
        declare   @lrsj  datetime,@nd char(4)
        select    @numrows = @@rowcount      
        if @numrows = 0      
            return    
       
  select @dwdm=DWDM,@dwmc =DWMC 
        from inserted 
             
            SELECT @lrsj = GETDATE() FROM DMB
            SELECT  @nd = datepart(year,GETDATE()) FROM DMB
begin tran
            INSERT JH_GZBZWHB (DWDM , DWMC, ND,LRRQ,YNQPT , YNQJG,JJPT,JJJG,GJGY , ZYJSGY, FZGWGY,FJGW1,FJGW2,FJGW3,XGYGW1,XGYGW2,XGYGW3,BY1 ,  BY2,  BY3 )    
            VALUES (@dwdm,@dwmc,@nd,@lrsj ,null,null , null,null,null,null, null, null,null,null,null,null,null,null,null,null,null)    
        commit tran   
      END
;
大家看看我的代码,我的语法是完全不对,哪位高手能给我改一下,对于MYSql的语法一点不懂

解决方案 »

  1.   

    错误很多
    IF ...THEN select DWDM INTO @dwdm 
    GETDATE()->CURDATE()
    建议看看mysql的HELP
      

  2.   

    参考一下MYSQL官方手册中的语法说明和例子,先自己尝试改下,然后有什么不正确的地方可以把你自己写的代码和错误提示一同贴出。
      

  3.   

    create trigger trgger_JH_GZJJJHB before insert on JH_GZJJJHB for each row
     Begin insert into jh_zzjg_zzjgdmb(dwdm,dwmc,zgdwmc,zgdwdm,dwxz,jfly,lxdh,lxr,bz,dmcd,dwjb,bzbj,xssx,sfxs,by1,by2,by3) values
    ('2012',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
    end if  end;
      

  4.   

    create trigger trgger_JH_GZJJJHB before insert on JH_GZJJJHB for each row
     Begininsert into jh_zzjg_zzjgdmb(dwdm,dwmc,zgdwmc,zgdwdm,dwxz,jfly,lxdh,lxr,bz,dmcd,dwjb,bzbj,xssx,sfxs,by1,by2,by3) values
    ('2012',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
    end if  end;
    这段代码都出错,错误提示 
    如下:
      

  5.   

    delimiter $$
    create trigger trgger_JH_GZJJJHB before insert on JH_GZJJJHB for each row
      Begin insert into jh_zzjg_zzjgdmb(dwdm,dwmc,zgdwmc,zgdwdm,dwxz,jfly,lxdh,lxr,bz,dmcd,dwjb,bzbj,xssx,sfxs,by1,by2,by3) values
     ('2012',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
     end if   end$$
    delimiter ;
      

  6.   

    delimiter $$
     create trigger trgger_JH_GZJJJHB before insert on JH_GZJJJHB for each row
       Begin  insert into jh_zzjg_zzjgdmb(dwdm,dwmc,zgdwmc,zgdwdm,dwxz,jfly,lxdh,lxr,bz,dmcd,dwjb,bzbj,xssx,sfxs,by1,by2,by3) values
      ('2012',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
       end$$
     delimiter ;
      

  7.   

    create trigger trgger_JH_GZJJJHB before insert on JH_GZJJJHB for each row
     Begininsert into jh_zzjg_zzjgdmb(dwdm,dwmc,zgdwmc,zgdwdm,dwxz,jfly,lxdh,lxr,bz,dmcd,dwjb,bzbj,xssx,sfxs,by1,by2,by3) values
    ('2012',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
    end if  --  这个END IF对有对应的IF end;
      

  8.   

    版主提的错误对,但是我这个错误我修改了还是这样提示 。我做了这样的测试。把代码改成部分。
    create trigger trgger_JH_GZJJJHB before insert on JH_GZJJJHB for each row
     Begin//insert into jh_zzjg_zzjgdmb (dwdm,dwmc,zgdwmc,zgdwdm,dwxz,jfly,lxdh,lxr,bz,dmcd,dwjb,bzbj,xssx,sfxs,by1,by2,by3) values
    //('2013',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
     end; 
    单独这样执行 ,没问题。
    单独执行这样也没问题。
    insert into jh_zzjg_zzjgdmb (dwdm,dwmc,zgdwmc,zgdwdm,dwxz,jfly,lxdh,lxr,bz,dmcd,dwjb,bzbj,xssx,sfxs,by1,by2,by3) values
    ('2013',null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,n
    两个放在一起 ,错误就如下: