CREATE PROCEDURE dbo.p_CL24_PF11_CL21  
    @as_cpzh char(4),--参数CL24中的CPZH
    @ls_ok   int output
AS
declare @li_tem float,--保存计算结果
        @li_PF11_SL int,
        @li_CL21_SYJE int,
        @li_CL21_JFSL int,
        @li_CL21_SYSL int,
        @li_CL21_JFSL int
select @li_PF11_SL=p.SL,
       @li_CL21_SYJE=l.SYJE,
        @li_CL21_JFSL=l.JFSL,
        @li_CL21_SYSL=l.SYSL,
        @li_CL21_JFSL=l.JFSL
   from CL24  c,PF11  p,CL21  l
where  l.zh =p.ZH
       and p.PFHM=c.PFHM
       and c.CPZH=@as_cpzh
set @li_tem=@li_PF11_SL*(@li_PF11_SL + @li_CL21_SYJE)/(@li_CL21_SYSL + @li_CL21_JFSL)
insert CL22(CPZH , CPMC,   JE)
select CPZH,CPMC,@li_tem  from CL24 where CPZH=@as_cpzh
IF @@ROWCOUNT = 0 set @ls_ok=100   --成功返回100
GO
试试看行不?
这种好像在触发器中调用一个过程,说不定效果更好