CREATE PROCEDURE dt_cyup @cy_bah varchar(9), @cy_cwh varchar(10), @cy_ksmc varchar(10), @cy_czy varchar(10), @cy_yj money, @cy_return int output, @cy_err varchar(20) output as DECLARE @er_h int SET @er_h=0 begin tran t1 update cw set sy='1' where cwh=@cy_cwh and ksmc=@cy_ksmc SET @er_h=@@error if @er_h<>0 begin rollback tran t1 SET @cy_return= 1 SET @cy_err= "在进行床位更新时出错" return end update brk set 当前状态="3",出院日期=getdate(),出院办理员=@cy_czy where 住院号=@cy_bah; SET @er_h=@@error if @er_h<>0 begin rollback tran t1 SET @cy_return = 1 SET @cy_err= "在进行病人停息表更新时出错" return end update 住院用药 set 当前状态="3" where 住院号=@cy_bah and 当前状态="1"; SET @er_h=@@error if @er_h<>0 begin rollback tran t1 set @cy_return= 1 set @cy_err="在进行病人用药更新时出错" return end update brfy set 当前状态="3" where 住院号=@cy_bah and 当前状态="1"; SET @er_h=@@error if @er_h<>0 begin rollback tran t1 set @cy_return= 1 set @cy_err="在进行费用表时更新时出错" return end if @cy_yj<>0 begin insert into yj(住院号,押金金额,操作员,押金说明) values(@cy_bah,@cy_yj,@cy_czy,'出院预交'); SET @er_h=@@error if @er_h<>0 begin rollback tran t1 set @cy_return = 1 set @cy_err="在进行押金更新时出错" return end end commit tran t1 SET @cy_return= 0 GO 我的存储像上面写的我运行没什么问题,大家帮我看看,我什么地方要改进并且我觉得用存储比直接用sql语句慢得多这是怎么回事.
@cy_bah varchar(9),
@cy_cwh varchar(10),
@cy_ksmc varchar(10),
@cy_czy varchar(10),
@cy_yj money,
@cy_return int output,
@cy_err varchar(20) output
as
DECLARE @er_h int
SET @er_h=0
begin tran t1
update cw set sy='1' where cwh=@cy_cwh and ksmc=@cy_ksmc
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
SET @cy_return= 1
SET @cy_err= "在进行床位更新时出错"
return
end
update brk set 当前状态="3",出院日期=getdate(),出院办理员=@cy_czy where 住院号=@cy_bah;
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
SET @cy_return = 1
SET @cy_err= "在进行病人停息表更新时出错"
return
end
update 住院用药 set 当前状态="3" where 住院号=@cy_bah and 当前状态="1";
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
set @cy_return= 1
set @cy_err="在进行病人用药更新时出错"
return
end
update brfy set 当前状态="3" where 住院号=@cy_bah and 当前状态="1";
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
set @cy_return= 1
set @cy_err="在进行费用表时更新时出错"
return
end
if @cy_yj<>0
begin
insert into yj(住院号,押金金额,操作员,押金说明) values(@cy_bah,@cy_yj,@cy_czy,'出院预交');
SET @er_h=@@error
if @er_h<>0
begin
rollback tran t1
set @cy_return = 1
set @cy_err="在进行押金更新时出错"
return
end
end
commit tran t1
SET @cy_return= 0
GO
我的存储像上面写的我运行没什么问题,大家帮我看看,我什么地方要改进并且我觉得用存储比直接用sql语句慢得多这是怎么回事.