存储过程问题
咿呀大河马 2010-12-02 05:08:11 CREATE procedure p_unlock
@cPdno VARCHAR(20),
@cReturn varchar(100) OUTPUT
AS
SET NOCOUNT ON
if @cPdno=''
return
declare @cZgbm varchar(10),
@dtPdrq datetime,
@numRow numeric(10,0)
--判断盘点单是否存在
SELECT TOP 1 @cZgbm = zgbm, @dtPdrq=pdrq FROM PDDA_ZG WHERE PDNO=@cPdno
IF IsNull(@cZgbm,'')=''
begin
SET @cReturn='盘点单不存在'
return
end
SELECT TOP 1 @cZgbm =zgbm FROM PDDA_ZG WHERE pdrq>=@dtPdrq and zgbm=@cZgbm and flag='1' and pdno<>@cPdno
--IF IsNull(@cPdno,'')=''
if @@rowcount<>0
begin
SET @cReturn='在本次反审核的盘点单日期之后存在已审核的盘点单'
return
end
--开始反审核
begin tran
begin
update pdda_zg set flag='0' where pdno=@cPdno and flag='1' --A
update jbzgk set pdrq=(select MAX(pdrq) from pdda_zg where zgbm=@cZgbm and flag='1' ) where item=@cZgbm --B
if @@rowcount<>0
begin
SET @cReturn='盘点单反审核成功!' --这里虽然提示了,但是没走A,B这两条语句
ROLLBACK TRAN
return
end
if @@rowcount=0
begin
set @cReturn='盘点单已反审核过了!'
ROLLBACK TRAN
return
end
if @@error<>0
begin
SET @cReturn='反审核失败,意外错误'
ROLLBACK TRAN
return
end
end
--重新计算库存
execute p_jisuan_sales @cZgbm
commit tran
GO
大家帮忙看下 ! 那里不清楚我再补充