我先把表结构发下:
[id] [int] IDENTITY (1, 1) NOT NULL ,
[bzid] [int] NULL ,
[cjid] [int] NULL ,
[txsj] [datetime] NULL ,
[bz] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[zdf] [numeric](18, 3) NULL ,
[jj] [numeric](18, 3) NULL ,
[zdl] [numeric](18, 3) NULL ,
[jm_df] [numeric](18, 5) NULL ,
[jm_dj] [numeric](18, 5) NULL ,
[jm_dl] [numeric](18, 5) NULL ,
[sy_df] [numeric](18, 5) NULL ,
[sy_dj] [numeric](18, 5) NULL ,
[sy_dl] [numeric](18, 5) NULL ,
[fp_pjdf_df] [numeric](18, 5) NULL ,
[fp_pjdf_dj] [numeric](18, 5) NULL ,
[fp_pjdf_dl] [numeric](18, 5) NULL ,
[fp_fzdf_df] [numeric](18, 5) NULL ,
[fp_fzdf_dj] [numeric](18, 5) NULL ,
[fp_fzdf_dl] [numeric](18, 5) NULL ,
[fp_gzdf_df] [numeric](18, 5) NULL ,
[fp_gzdf_dj] [numeric](18, 5) NULL ,
[fp_gzdf_dl] [numeric](18, 5) NULL ,
[fp_hjdf] [numeric](18, 5) NULL ,
[fp_hjdl] [numeric](18, 5) NULL ,
[fj_df] [numeric](18, 5) NULL ,
[fj_dl] [numeric](18, 5) NULL ,
[fj_dj] [numeric](18, 5) NULL ,
[dgy_pjdf_df] [numeric](18, 5) NULL ,
[dgy_pjdf_dj] [numeric](18, 5) NULL ,
[dgy_pjdf_dl] [numeric](18, 5) NULL ,
[dgy_fzdf_df] [numeric](18, 5) NULL ,
[dgy_fzdf_dj] [numeric](18, 5) NULL ,
[dgy_fzdf_dl] [numeric](18, 5) NULL ,
[dgy_gzdf_df] [numeric](18, 5) NULL ,
[dgy_gzdf_dj] [numeric](18, 5) NULL ,
[dgy_gzdf_dl] [numeric](18, 5) NULL ,
[dgy_hjdf] [numeric](18, 5) NULL ,
[dgy_hjdl] [numeric](18, 5) NULL ,
[jbdf_df] [numeric](18, 5) NULL ,
[jbdf_jsdj] [numeric](18, 5) NULL ,
[jbdf_jsrl] [numeric](18, 5) NULL ,
[ll] [numeric](18, 2) NULL ,
[fz] [numeric](18, 2) NULL ,
[gz] [numeric](18, 2) NULL ,
[qtdf] [numeric](18, 0) NULL ,
[qtdl] [numeric](18, 0) NULL ,
[nf] [int] NULL ,
[yf] [int] NULL 
下面是写的触发器内容:
CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
AS
  BEGIN
       UPDATE gdbb_bpds1 SET gdbb_bpds1.jm_dj=gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0 
       UPDATE gdbb_bpds1 SET gdbb_bpds1.sy_dj=gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.sy_dl<>0
       UPDATE gdbb_bpds1 SET gdbb_bpds1.fj_dj=gdbb_bpds1.fj_df/gdbb_bpds1.fj_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fj_dl <>0 
       UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_pjdf_dj=gdbb_bpds1.fp_pjdf_df/gdbb_bpds1.fp_pjdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_pjdf_dl <>0
       UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_fzdf_dj=gdbb_bpds1.fp_fzdf_df/gdbb_bpds1.fp_fzdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_fzdf_dl <>0
       UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_gzdf_dj=gdbb_bpds1.fp_gzdf_df/gdbb_bpds1.fp_gzdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_gzdf_dl <>0
       UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdf=gdbb_bpds1.fp_pjdf_df+gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.fp_gzdf_df  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
       UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdl=gdbb_bpds1.fp_pjdf_dl+gdbb_bpds1.fp_fzdf_dl+gdbb_bpds1.fp_gzdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID       UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_pjdf_dj=gdbb_bpds1.dgy_pjdf_df/gdbb_bpds1.dgy_pjdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_pjdf_dl<>0
       UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_fzdf_dj=gdbb_bpds1.dgy_fzdf_df/gdbb_bpds1.dgy_fzdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_fzdf_dl<>0
       UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_gzdf_dj=gdbb_bpds1.dgy_gzdf_df/gdbb_bpds1.dgy_gzdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_gzdf_dl<>0
       UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdf=gdbb_bpds1.dgy_pjdf_df+gdbb_bpds1.dgy_fzdf_df+gdbb_bpds1.dgy_gzdf_df  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
       UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdl=gdbb_bpds1.dgy_pjdf_dl+gdbb_bpds1.dgy_fzdf_dl+gdbb_bpds1.dgy_gzdf_dl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID        UPDATE gdbb_bpds1 SET gdbb_bpds1.zdf=gdbb_bpds1.jm_df+gdbb_bpds1.sy_df+gdbb_bpds1.fp_hjdf+gdbb_bpds1.fj_df+gdbb_bpds1.dgy_hjdf+gdbb_bpds1.jbdf_df+gdbb_bpds1.ll+gdbb_bpds1.qtdf  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.zdl=gdbb_bpds1.jm_dl+gdbb_bpds1.sy_dl+gdbb_bpds1.fp_hjdl+gdbb_bpds1.fj_dl+gdbb_bpds1.dgy_hjdl+gdbb_bpds1.qtdl   FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fz=gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.dgy_fzdf_df  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
       UPDATE gdbb_bpds1 SET gdbb_bpds1.gz=gdbb_bpds1.fp_gzdf_df+gdbb_bpds1.dgy_gzdf_df  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID       UPDATE gdbb_bpds1 SET gdbb_bpds1.jj=gdbb_bpds1.zdf/gdbb_bpds1.zdl  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.zdl <>0   
  END其实运算的都很简单,无非就是给部分字段填入数据在用触发器运算出来的结果填入其它字段。我也试过了,没有错误。只是有部分用户有提出过点保存的时候没任何反映(客户段是asp)说明没保存进去(当然在试一次又可以保存了),用户说只是偶尔会。我也查了代码没什么问,现在想请教大家看看大概是什么缘故会偶尔保存不了。谢谢了

解决方案 »

  1.   

    CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    AS
      BEGIN TRAN
      BEGIN
      UPDATE gdbb_bpds1 SET gdbb_bpds1.jm_dj=gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0  
      UPDATE gdbb_bpds1 SET gdbb_bpds1.sy_dj=gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.sy_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fj_dj=gdbb_bpds1.fj_df/gdbb_bpds1.fj_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fj_dl <>0  
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_pjdf_dj=gdbb_bpds1.fp_pjdf_df/gdbb_bpds1.fp_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_pjdf_dl <>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_fzdf_dj=gdbb_bpds1.fp_fzdf_df/gdbb_bpds1.fp_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_fzdf_dl <>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_gzdf_dj=gdbb_bpds1.fp_gzdf_df/gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_gzdf_dl <>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdf=gdbb_bpds1.fp_pjdf_df+gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.fp_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdl=gdbb_bpds1.fp_pjdf_dl+gdbb_bpds1.fp_fzdf_dl+gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID   UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_pjdf_dj=gdbb_bpds1.dgy_pjdf_df/gdbb_bpds1.dgy_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_pjdf_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_fzdf_dj=gdbb_bpds1.dgy_fzdf_df/gdbb_bpds1.dgy_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_fzdf_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_gzdf_dj=gdbb_bpds1.dgy_gzdf_df/gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_gzdf_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdf=gdbb_bpds1.dgy_pjdf_df+gdbb_bpds1.dgy_fzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdl=gdbb_bpds1.dgy_pjdf_dl+gdbb_bpds1.dgy_fzdf_dl+gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID   UPDATE gdbb_bpds1 SET gdbb_bpds1.zdf=gdbb_bpds1.jm_df+gdbb_bpds1.sy_df+gdbb_bpds1.fp_hjdf+gdbb_bpds1.fj_df+gdbb_bpds1.dgy_hjdf+gdbb_bpds1.jbdf_df+gdbb_bpds1.ll+gdbb_bpds1.qtdf FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.zdl=gdbb_bpds1.jm_dl+gdbb_bpds1.sy_dl+gdbb_bpds1.fp_hjdl+gdbb_bpds1.fj_dl+gdbb_bpds1.dgy_hjdl+gdbb_bpds1.qtdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fz=gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.dgy_fzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.gz=gdbb_bpds1.fp_gzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID   UPDATE gdbb_bpds1 SET gdbb_bpds1.jj=gdbb_bpds1.zdf/gdbb_bpds1.zdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.zdl <>0   
      END
    IF @@error=0
    COMMIT
    ELSE
    BEGIN
    RAISERROR('更新不成功',16,1)
    ROLLBACK
    END
    GO加个事务试试
      

  2.   

    只是有部分用户有提出过点保存的时候没任何反映(客户段是asp)说明没保存进去(当然在试一次又可以保存了),用户说只是偶尔会。我也查了代码没什么问,现在想请教大家看看大概是什么缘故会偶尔保存不了可能出现并发问题,更新被覆盖了,同时更新同一个时,被后面的覆盖
      

  3.   

    A.当 SET XACT_ABORT 为 ON 时,如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚。 
    B.当 SET XACT_ABORT 为 OFF 时,有时只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。
    如果错误很严重,那么即使 SET XACT_ABORT 为 OFF,也可能回滚整个事务。
      

  4.   

    CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    AS 
      SET XACT_ABORT on 
      BEGIN
      UPDATE gdbb_bpds1 SET gdbb_bpds1.jm_dj=gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0  
      UPDATE gdbb_bpds1 SET gdbb_bpds1.sy_dj=gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.sy_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fj_dj=gdbb_bpds1.fj_df/gdbb_bpds1.fj_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fj_dl <>0  
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_pjdf_dj=gdbb_bpds1.fp_pjdf_df/gdbb_bpds1.fp_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_pjdf_dl <>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_fzdf_dj=gdbb_bpds1.fp_fzdf_df/gdbb_bpds1.fp_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_fzdf_dl <>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_gzdf_dj=gdbb_bpds1.fp_gzdf_df/gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_gzdf_dl <>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdf=gdbb_bpds1.fp_pjdf_df+gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.fp_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdl=gdbb_bpds1.fp_pjdf_dl+gdbb_bpds1.fp_fzdf_dl+gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID  UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_pjdf_dj=gdbb_bpds1.dgy_pjdf_df/gdbb_bpds1.dgy_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_pjdf_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_fzdf_dj=gdbb_bpds1.dgy_fzdf_df/gdbb_bpds1.dgy_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_fzdf_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_gzdf_dj=gdbb_bpds1.dgy_gzdf_df/gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_gzdf_dl<>0
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdf=gdbb_bpds1.dgy_pjdf_df+gdbb_bpds1.dgy_fzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdl=gdbb_bpds1.dgy_pjdf_dl+gdbb_bpds1.dgy_fzdf_dl+gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID  UPDATE gdbb_bpds1 SET gdbb_bpds1.zdf=gdbb_bpds1.jm_df+gdbb_bpds1.sy_df+gdbb_bpds1.fp_hjdf+gdbb_bpds1.fj_df+gdbb_bpds1.dgy_hjdf+gdbb_bpds1.jbdf_df+gdbb_bpds1.ll+gdbb_bpds1.qtdf FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.zdl=gdbb_bpds1.jm_dl+gdbb_bpds1.sy_dl+gdbb_bpds1.fp_hjdl+gdbb_bpds1.fj_dl+gdbb_bpds1.dgy_hjdl+gdbb_bpds1.qtdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fz=gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.dgy_fzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      UPDATE gdbb_bpds1 SET gdbb_bpds1.gz=gdbb_bpds1.fp_gzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID  UPDATE gdbb_bpds1 SET gdbb_bpds1.jj=gdbb_bpds1.zdf/gdbb_bpds1.zdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.zdl <>0   
      END
      

  5.   

    事务那样加还是不行的,每一个UPDATE都得判断
      

  6.   

    CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    如果不加上
    if update(gdbb_bpds1.jm_dl ) 可能会嵌套触发  UPDATE gdbb_bpds1 SET gdbb_bpds1.jm_dj=gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0  简单的计算,用计算列好了
      

  7.   

    CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    AS
    declare @error int
    set @error =0
      BEGIN TRAN
      BEGIN
      UPDATE gdbb_bpds1 SET gdbb_bpds1.jm_dj=gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0  
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.sy_dj=gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.sy_dl<>0
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fj_dj=gdbb_bpds1.fj_df/gdbb_bpds1.fj_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fj_dl <>0  
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_pjdf_dj=gdbb_bpds1.fp_pjdf_df/gdbb_bpds1.fp_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_pjdf_dl <>0
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_fzdf_dj=gdbb_bpds1.fp_fzdf_df/gdbb_bpds1.fp_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_fzdf_dl <>0
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_gzdf_dj=gdbb_bpds1.fp_gzdf_df/gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_gzdf_dl <>0
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdf=gdbb_bpds1.fp_pjdf_df+gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.fp_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdl=gdbb_bpds1.fp_pjdf_dl+gdbb_bpds1.fp_fzdf_dl+gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error   UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_pjdf_dj=gdbb_bpds1.dgy_pjdf_df/gdbb_bpds1.dgy_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_pjdf_dl<>0
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_fzdf_dj=gdbb_bpds1.dgy_fzdf_df/gdbb_bpds1.dgy_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_fzdf_dl<>0
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_gzdf_dj=gdbb_bpds1.dgy_gzdf_df/gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_gzdf_dl<>0
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdf=gdbb_bpds1.dgy_pjdf_df+gdbb_bpds1.dgy_fzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdl=gdbb_bpds1.dgy_pjdf_dl+gdbb_bpds1.dgy_fzdf_dl+gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.zdf=gdbb_bpds1.jm_df+gdbb_bpds1.sy_df+gdbb_bpds1.fp_hjdf+gdbb_bpds1.fj_df+gdbb_bpds1.dgy_hjdf+gdbb_bpds1.jbdf_df+gdbb_bpds1.ll+gdbb_bpds1.qtdf FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.zdl=gdbb_bpds1.jm_dl+gdbb_bpds1.sy_dl+gdbb_bpds1.fp_hjdl+gdbb_bpds1.fj_dl+gdbb_bpds1.dgy_hjdl+gdbb_bpds1.qtdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fz=gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.dgy_fzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error
      UPDATE gdbb_bpds1 SET gdbb_bpds1.gz=gdbb_bpds1.fp_gzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      set @error=@error+@@error   UPDATE gdbb_bpds1 SET gdbb_bpds1.jj=gdbb_bpds1.zdf/gdbb_bpds1.zdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.zdl <>0   
      set @error=@error+@@error
      END
    IF @error=0
    COMMIT
    ELSE
    BEGIN
    RAISERROR('更新不成功',16,1)
    ROLLBACK
    END
    GO这样吗
      

  8.   

    其实小弟sql用的非常差,楼上的“htl258”是不是把你的完全复制来就可以用了吗?
      

  9.   

    嗯,应该要这样TONY哥,@@ERROR返回的是当前最后一句执行的结果
      

  10.   

    那个代码就是如果有一条在更新过程中遇到问题,那么在 dbo.Gdbb_bpds1 表插入或更新就不成功,需要重新操作。
      

  11.   

    “dawugui”说的:可考虑在触发之后判断数据是否成功,如果不成功则再次运行和触发器相关的操作.
    首先网络是问题的,都在局域网内的。可以麻烦写下代码吗我写不来。
      

  12.   

    “dawugui”说的:可考虑在触发之后判断数据是否成功,如果不成功则再次运行和触发器相关的操作.
    首先网络是没问题的,都在局域网内的。可以麻烦写下代码吗我写不来。
      

  13.   

    “htl258”求你给个完整的把。感谢啦。(就是我复制过去就可以用了)
      

  14.   

    这么多个update,可以合并成一个,用 case when 判断,应该能提高语句效率,从而减少死锁
      

  15.   

    7楼的就加了条语句“  SET XACT_ABORT on",其它的代码都没变。这条语句是说明意思?
      

  16.   

    22楼的“Yang_",小弟是菜鸟级的,所以你的想法我没办法转换成代码,,所以麻烦给我详细的谢谢
      

  17.   

    看看这样行不行CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    AS 
      SET XACT_ABORT on   UPDATE gdbb_bpds1 SET 
          gdbb_bpds1.jm_dj=case when gdbb_bpds1.jm_dl <>0 then gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl else gdbb_bpds1.jm_df end
          ,gdbb_bpds1.sy_dj=case when gdbb_bpds1.sy_dl <>0 then gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl else gdbb_bpds1.sy_df end
          ,... -- 太多,其他的你自己改
      FROM INSERTED I,gdbb_bpds1 
      WHERE I.ID=gdbb_bpds1.ID
    GO
      

  18.   

    加这一句已经实现Tony哥的想法了,就是出错回滚事务
    不过我觉得问题不在这里,看22和26楼
    自己需要参与修改的,不要试图别人帮你写好,直接复制就可以
      

  19.   

    向海爷学习。结合相关意见,把代码改为两条UPDATE,如果用CASE WHEN,需要更多代码,所以改为两条。lCREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    AS 
      SET XACT_ABORT ON 
      BEGIN
      UPDATE gdbb_bpds1 SET 
    gdbb_bpds1.jm_dj=gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl, 
    gdbb_bpds1.sy_dj=gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl,
    gdbb_bpds1.fj_dj=gdbb_bpds1.fj_df/gdbb_bpds1.fj_dl,
    gdbb_bpds1.fp_pjdf_dj=gdbb_bpds1.fp_pjdf_df/gdbb_bpds1.fp_pjdf_dl,
    gdbb_bpds1.fp_gzdf_dj=gdbb_bpds1.fp_gzdf_df/gdbb_bpds1.fp_gzdf_dl,
    gdbb_bpds1.dgy_pjdf_dj=gdbb_bpds1.dgy_pjdf_df/gdbb_bpds1.dgy_pjdf_dl,
    gdbb_bpds1.dgy_fzdf_dj=gdbb_bpds1.dgy_fzdf_df/gdbb_bpds1.dgy_fzdf_dl,
    gdbb_bpds1.dgy_gzdf_dj=gdbb_bpds1.dgy_gzdf_df/gdbb_bpds1.dgy_gzdf_dl,
    gdbb_bpds1.jj=gdbb_bpds1.zdf/gdbb_bpds1.zdl
      FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0  
      
      UPDATE gdbb_bpds1 SET 
    gdbb_bpds1.fp_hjdf=gdbb_bpds1.fp_pjdf_df+gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.fp_gzdf_df ,
    gdbb_bpds1.fp_hjdl=gdbb_bpds1.fp_pjdf_dl+gdbb_bpds1.fp_fzdf_dl+gdbb_bpds1.fp_gzdf_dl ,
    gdbb_bpds1.dgy_hjdf=gdbb_bpds1.dgy_pjdf_df+gdbb_bpds1.dgy_fzdf_df+gdbb_bpds1.dgy_gzdf_df,
    gdbb_bpds1.dgy_hjdl=gdbb_bpds1.dgy_pjdf_dl+gdbb_bpds1.dgy_fzdf_dl+gdbb_bpds1.dgy_gzdf_dl,
    gdbb_bpds1.zdf=gdbb_bpds1.jm_df+gdbb_bpds1.sy_df+gdbb_bpds1.fp_hjdf+gdbb_bpds1.fj_df+gdbb_bpds1.dgy_hjdf+gdbb_bpds1.jbdf_df+gdbb_bpds1.ll+gdbb_bpds1.qtdf ,
    gdbb_bpds1.zdl=gdbb_bpds1.jm_dl+gdbb_bpds1.sy_dl+gdbb_bpds1.fp_hjdl+gdbb_bpds1.fj_dl+gdbb_bpds1.dgy_hjdl+gdbb_bpds1.qtdl,
    gdbb_bpds1.fz=gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.dgy_fzdf_df,
    gdbb_bpds1.gz=gdbb_bpds1.fp_gzdf_df+gdbb_bpds1.dgy_gzdf_df
      FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.IDEND
      

  20.   

    Tony哥,没改对哦
    如果gdbb_bpds1.sy_dl=0就报错了还是用case when 吧,他原来的每个update条件都是不同的
      

  21.   

    嗯,除数为0要出错CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    AS 
      SET XACT_ABORT ON 
      BEGIN
      UPDATE gdbb_bpds1 SET 
        gdbb_bpds1.jm_dj=case gdbb_bpds1.jm_dl when 0 then 0 else gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl end, 
        gdbb_bpds1.sy_dj=case gdbb_bpds1.sy_dl when 0 then 0 else gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl end,
        gdbb_bpds1.fj_dj=case gdbb_bpds1.fj_dl when 0 then 0 else gdbb_bpds1.fj_df/gdbb_bpds1.fj_dl end,
        gdbb_bpds1.fp_pjdf_dj=case gdbb_bpds1.fp_pjdf_dl when 0 then 0 else gdbb_bpds1.fp_pjdf_df/gdbb_bpds1.fp_pjdf_dl end,
        gdbb_bpds1.fp_gzdf_dj=case gdbb_bpds1.fp_gzdf_dl when 0 then 0 else gdbb_bpds1.fp_gzdf_df/gdbb_bpds1.fp_gzdf_dl end,
        gdbb_bpds1.dgy_pjdf_dj=case gdbb_bpds1.dgy_pjdf_dl when 0 then 0 else gdbb_bpds1.dgy_pjdf_df/gdbb_bpds1.dgy_pjdf_dl end,
        gdbb_bpds1.dgy_fzdf_dj=case gdbb_bpds1.dgy_fzdf_dl when 0 then 0 else gdbb_bpds1.dgy_fzdf_df/gdbb_bpds1.dgy_fzdf_dl end,
        gdbb_bpds1.dgy_gzdf_dj=case gdbb_bpds1.dgy_gzdf_dl when 0 then 0 else gdbb_bpds1.dgy_gzdf_df/gdbb_bpds1.dgy_gzdf_dl end,
        gdbb_bpds1.jj=gdbb_bpds1.zdf/gdbb_bpds1.zdl
      FROM INSERTED I,gdbb_bpds1 
      WHERE I.ID=gdbb_bpds1.ID 
    and gdbb_bpds1.jm_dl <>0  
      
      UPDATE gdbb_bpds1 SET 
        gdbb_bpds1.fp_hjdf=gdbb_bpds1.fp_pjdf_df+gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.fp_gzdf_df ,
        gdbb_bpds1.fp_hjdl=gdbb_bpds1.fp_pjdf_dl+gdbb_bpds1.fp_fzdf_dl+gdbb_bpds1.fp_gzdf_dl ,
        gdbb_bpds1.dgy_hjdf=gdbb_bpds1.dgy_pjdf_df+gdbb_bpds1.dgy_fzdf_df+gdbb_bpds1.dgy_gzdf_df,
        gdbb_bpds1.dgy_hjdl=gdbb_bpds1.dgy_pjdf_dl+gdbb_bpds1.dgy_fzdf_dl+gdbb_bpds1.dgy_gzdf_dl,
        gdbb_bpds1.zdf=gdbb_bpds1.jm_df+gdbb_bpds1.sy_df+gdbb_bpds1.fp_hjdf+gdbb_bpds1.fj_df+gdbb_bpds1.dgy_hjdf+gdbb_bpds1.jbdf_df+gdbb_bpds1.ll+gdbb_bpds1.qtdf ,
        gdbb_bpds1.zdl=gdbb_bpds1.jm_dl+gdbb_bpds1.sy_dl+gdbb_bpds1.fp_hjdl+gdbb_bpds1.fj_dl+gdbb_bpds1.dgy_hjdl+gdbb_bpds1.qtdl,
        gdbb_bpds1.fz=gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.dgy_fzdf_df,
        gdbb_bpds1.gz=gdbb_bpds1.fp_gzdf_df+gdbb_bpds1.dgy_gzdf_df
      FROM INSERTED I,gdbb_bpds1 
      WHERE I.ID=gdbb_bpds1.IDEND
      

  22.   

    sql执行一般不会有问题,问题出在调用,我在别的程序里遇到过,加强判断CREATE TRIGGER TRI_IN_UP ON dbo.Gdbb_bpds1 FOR INSERT ,UPDATE
    AS
      BEGIN
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0  )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.jm_dj=gdbb_bpds1.jm_df/gdbb_bpds1.jm_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.jm_dl <>0  
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.sy_dl<>0 )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.sy_dj=gdbb_bpds1.sy_df/gdbb_bpds1.sy_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.sy_dl<>0
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fj_dl <>0   )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fj_dj=gdbb_bpds1.fj_df/gdbb_bpds1.fj_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fj_dl <>0  
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_pjdf_dl <>0 )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_pjdf_dj=gdbb_bpds1.fp_pjdf_df/gdbb_bpds1.fp_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_pjdf_dl <>0
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_fzdf_dl <>0  )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_fzdf_dj=gdbb_bpds1.fp_fzdf_df/gdbb_bpds1.fp_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_fzdf_dl <>0
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_gzdf_dl <>0 )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_gzdf_dj=gdbb_bpds1.fp_gzdf_df/gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.fp_gzdf_dl <>0
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdf=gdbb_bpds1.fp_pjdf_df+gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.fp_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1   FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID  )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fp_hjdl=gdbb_bpds1.fp_pjdf_dl+gdbb_bpds1.fp_fzdf_dl+gdbb_bpds1.fp_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_pjdf_dl<>0 )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_pjdf_dj=gdbb_bpds1.dgy_pjdf_df/gdbb_bpds1.dgy_pjdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_pjdf_dl<>0
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_fzdf_dl<>0 )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_fzdf_dj=gdbb_bpds1.dgy_fzdf_df/gdbb_bpds1.dgy_fzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_fzdf_dl<>0
      IF EXISTS(SELECT 1   FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_gzdf_dl<>0  )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_gzdf_dj=gdbb_bpds1.dgy_gzdf_df/gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.dgy_gzdf_dl<>0
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdf=gdbb_bpds1.dgy_pjdf_df+gdbb_bpds1.dgy_fzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID  )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.dgy_hjdl=gdbb_bpds1.dgy_pjdf_dl+gdbb_bpds1.dgy_fzdf_dl+gdbb_bpds1.dgy_gzdf_dl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID  )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.zdf=gdbb_bpds1.jm_df+gdbb_bpds1.sy_df+gdbb_bpds1.fp_hjdf+gdbb_bpds1.fj_df+gdbb_bpds1.dgy_hjdf+gdbb_bpds1.jbdf_df+gdbb_bpds1.ll+gdbb_bpds1.qtdf FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1   FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.zdl=gdbb_bpds1.jm_dl+gdbb_bpds1.sy_dl+gdbb_bpds1.fp_hjdl+gdbb_bpds1.fj_dl+gdbb_bpds1.dgy_hjdl+gdbb_bpds1.qtdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.fz=gdbb_bpds1.fp_fzdf_df+gdbb_bpds1.dgy_fzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID  )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.gz=gdbb_bpds1.fp_gzdf_df+gdbb_bpds1.dgy_gzdf_df FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID
      IF EXISTS(SELECT 1  FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.zdl <>0   )
      UPDATE gdbb_bpds1 SET gdbb_bpds1.jj=gdbb_bpds1.zdf/gdbb_bpds1.zdl FROM INSERTED I,gdbb_bpds1 WHERE I.ID=gdbb_bpds1.ID and gdbb_bpds1.zdl <>0   
      END
      

  23.   

    我还是采用了xys_777的。谢谢大家了。散分