好像少了一对begin end吧CREATE TRIGGER trigger_iepa00d8 ON iepa00d8 FOR INSERT,UPDATE,DELETE AS 
begin
IF ((COLUMNS_UPDATED() & 14) > 0)
BEGIN
         UPDATE iepa00h SET iepa00h.pa_oudat=iepa00d8.pa_date FROM iepa00h,iepa00d8 WHERE iepa00h.pa_no=iepa00d8.pa_no
END
IF (NOT EXISTS(SELECT iepa00h.pa_no FROM DELETED,iepa00h WHERE iepa00h.pa_no=DELETED.pa_no))
BEGIN
     UPDATE iepa00h SET iepa00h.pa_oudat=null FROM DELETED,iepa00h WHERE iepa00h.pa_no=DELETED.pa_no
END
end

解决方案 »

  1.   

    CREATE TRIGGER trigger_iepa00d8 ON iepa00d8 FOR INSERT,UPDATE,DELETE AS 
    begin
    IF ((COLUMNS_UPDATED() & 14) > 0)
      BEGIN
      UPDATE iepa00h SET iepa00h.pa_oudat=iepa00d8.pa_date FROM iepa00h,iepa00d8 WHERE iepa00h.pa_no=iepa00d8.pa_no
      END
       UPDATE iepa00h SET iepa00h.pa_oudat=null FROM DELETED,iepa00h WHERE iepa00h.pa_no=DELETED.pa_no
    end
      

  2.   

    謝謝大力兄的指點。
    不過照你的寫法反而使iepa00d8中的相應字段刪不掉了。另外想請教一下﹐好像加上了trigger之后速度有些下降﹐我的庫有300多張表﹐其中iepa00h里面有6000多條記錄。