CREATE TRIGGER trUpdateSummary ON dbo.wfWorksheet 
FOR insert,UPDATE
AS
begin
  declare @iShtType as tinyint
  declare @cShtID as char(16)
  select @iShtType=0
  select @cShtID=''
  declare @vcShipType as varchar(10)
  select @vcShipType=''
if Update(mFreight) or Update(mPkgChrg) or Update(mInsChrg) 
     begin
Declare get_work cursor for select iShtType,cShtID,cConType from inserted
Open get_work
fetch get_work into @iShtType,@cShtID,@vcShipType
while (@@FETCH_STATUS =0)
   begin
If @iShtType =1 
    begin
If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
       end
close get_work
DEALLOCATE get_work
     end if insert(mFreight) or insert(mPkgChrg) or insert(mInsChrg) 
     begin
Declare get_work cursor for select iShtType,cShtID,cConType from inserted
Open get_work
fetch get_work into @iShtType,@cShtID,@vcShipType
while (@@FETCH_STATUS =0)
   begin
If @iShtType =1 
    begin
If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
       end
close get_work
DEALLOCATE get_work
     end
end
没测试过,思路是这样的

解决方案 »

  1.   

    开玩笑,这样回答都可以??你只要在FOR那里加个insert就可以了:
    CREATE TRIGGER trUpdateSummary ON dbo.wfWorksheet 
    FOR insert,UPDATE
    AS
    begin
      declare @iShtType as tinyint
      declare @cShtID as char(16)
      select @iShtType=0
      select @cShtID=''
      declare @vcShipType as varchar(10)
      select @vcShipType=''
        if Update(mFreight) or Update(mPkgChrg) or Update(mInsChrg) 
        begin
        Declare get_work cursor for select iShtType,cShtID,cConType from inserted
        Open get_work
        fetch get_work into @iShtType,@cShtID,@vcShipType
        while (@@FETCH_STATUS =0)
          begin
            If @iShtType =1 
               begin
                    If @iShtType =2 Update wfWorkSheet set dSummary=mFreight+mPkgChrg+mInsChrg+mOthChrg+mPoundage+mFlrChrg+mStgChrg+mSrvChrg+mTruckage+mSubPayChrg+mLocChrg+mWaitChrg where cShtID=@cShtID --市内派送工作单
                     end
        close get_work
        DEALLOCATE get_work
        end
    end