我试着把
update ZY_LSYZ
set LSJ= YP.yplsj,PFJ=Yp.ypPFj,zfje=zfje * Yp.YpLsj/Yz.Lsj,gfje = gfje* Yp.YpLsj/Yz.Lsj
from ZY_LSYZ yz
inner join ykyf_ks ks on ks.KSBH=yz.ZXKS
inner Join yf_dtkc yp on yp.ypID = yz.YPXMBM and yp.YFKS=ks.BH and yp.pc=yz.pc
where yp.yplsj <> yz.lsj and yz.lsj <>0 and substring(XZKS,1,6)=substring(@xzks,1,6) and yz.YPXMLX <>'4' and yz.YPXMLX <>'5' and (yz.ytbz='1' and yz.ytbz='5') and blh=@blh
if @@error <>0 goto dofail 删除就可以,不懂是什么原因。
update ZY_LSYZ
set LSJ= YP.yplsj,PFJ=Yp.ypPFj,zfje=zfje * Yp.YpLsj/Yz.Lsj,gfje = gfje* Yp.YpLsj/Yz.Lsj
from ZY_LSYZ yz
inner join ykyf_ks ks on ks.KSBH=yz.ZXKS
inner Join yf_dtkc yp on yp.ypID = yz.YPXMBM and yp.YFKS=ks.BH and yp.pc=yz.pc
where yp.yplsj <> yz.lsj and yz.lsj <>0 and substring(XZKS,1,6)=substring(@xzks,1,6) and yz.YPXMLX <>'4' and yz.YPXMLX <>'5' and (yz.ytbz='1' and yz.ytbz='5') and blh=@blh
if @@error <>0 goto dofail 删除就可以,不懂是什么原因。
FOR UPDATE
AS
set transaction isolation level read uncommitted
--begin Transaction
declare @ybsflx char(4),@date datetime
set @date=getdate()
set @ybsflx=(select ybsflx from zd_zhk where ybsflx<>'')
if update(ytbz)
begin
if exists(select * from inserted where ytbz='4')
begin
insert into zy_dxsf(blh,zycs,sfks,zyks,xzks,xzys,sfrq,yzm,zfje,gfje,yzbh,yzlx,gg,jldw,zl,lsj,pfj,xmsx,sfdm,fpdm,ypbz,ypxmlx,sfry,ypxmbm,PC,
YPYT,YCYL,YF,YFSM,SQSJ,YYJG,SQRY,jdry,jdrq,yfdqbz)
select s.blh,s.zycs,s.zxks,t.ksbh,s.xzks,s.xzys,sqrq,s.ym, s.zfje,s.gfje,s.yzbh,'l', s.gg,s.dw, s.zl,s.lsj,s.pfj,s.xmsx,
s.sfdm,s.fpdm,s.ypsx,s.ypxmlx,s.rybh,s.ypxmbm,S.PC,s.YPYT,s.YCYL,s.YF,s.YFSM,s.SQSJ,s.YYJG,s.SQRY,s.jdry,s.jdrq,s.yzrylx
from inserted s,zy_brzl t
where s.ytbz='4' and s.blh=t.blh and s.zycs=t.zycs
if @@error!=0
begin
raiserror('系统错误',16 ,1)
rollback tran
return
end
else
begin update s --修改病人资料表的自费金额,公费金额,结算剩余
set s.fyhj=s.fyhj+(select isnull(sum(g.zfje),0) from inserted g where t.ytbz='4' group by g.blh,g.zycs
having s.blh=g.blh and s.zycs=g.zycs),
s.gfhj=s.gfhj+(select isnull(sum(g.gfje),0) from inserted g where t.ytbz='4' group by g.blh,g.zycs
having s.blh=g.blh and s.zycs=g.zycs), s.jssy=s.yjf-s.fyhj-(select isnull(sum(g.zfje),0) from inserted g where t.ytbz='4' group by g.blh,g.zycs
having s.blh=g.blh and s.zycs=g.zycs)
from zy_brzl s,inserted t where s.blh=t.blh and s.zycs=t.zycs
if @@error!=0
begin
raiserror('系统错误',16 ,1)
rollback tran
return
end
update zy_lsyz --修改病人临时医嘱表的用停标志ytbz =5
set ytbz='5'
where ytbz='4'
if @@error!=0
begin
raiserror('系统错误',16 ,1)
rollback tran
return
end
end
end
-- commit Transaction
-- return
end
这个错误是你代码中commit和rollback没有匹配好.
仔细检查一下
看的头晕~
自己检查一下把,