执行这句后将调用存储过程:目的是要能执行这句来改变值UPDATE PCBML SET zt=2,SHrq=GETDATE(),SHR=@CZYID WHERE djh=@ckdhSET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
ALTER  proc PDD_SH_PROC(
@ckdh  char(16)='CG19981027000001',
        @czyid          char(10)='01',
@zt1 smallint output)
ASDECLARE @zt tinyint
select @zt=zt from PCBML where djh=@ckdhif @zt<>1 
begin
   set @zt1= -1
   return
end
/*置审核标志*/BEGIN tran
 
if @@ERROR>0 
begin
   rollback tran
--   UPDATE RETURN_VALUE SET R_VALUE=1
--   UPDATE PCBML SET zt=9,shrq=GETDATE()WHERE djh=@ckdh
END
else
begin
   commit tran
  set @zt1=2
   UPDATE PCBML SET zt=2,SHrq=GETDATE(),SHR=@CZYID WHERE djh=@ckdh
END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

解决方案 »

  1.   

    存储过程发错
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    ALTER     proc PDD_JZ_PROC(
    @ckdh  char(16)='CG19981027000001',
            @czyid          char(10)='01',
            @jzrq        datetime,
    @zt2 smallint output)
    ASBEGIN tranDECLARE @zt tinyint
    select @zt=zt from PCBML where djh=@ckdhif @zt<>2 
    begin
       rollback tran
       return
    end
    /*置审核标志*/ 
    if @@ERROR>0 
    begin
       rollback tran
       UPDATE RETURN_VALUE SET R_VALUE=1---这句要来有什么用呢????
    --   UPDATE PCBML SET zt=9,shrq=GETDATE()WHERE djh=@ckdh
    END
    else
    begin
       commit tran
       UPDATE RETURN_VALUE SET R_VALUE=0
       UPDATE PCBML SET zt=4,jzrq=GETDATE(),JZR=@CZYID WHERE djh=@ckdh
    END
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
      

  2.   


    这是名为dj_jz的存储过程
    ALTER    PROCEDURE DJ_jz(@djh char(16),@czy CHAR(10),@djlx INT,@jzrq  datetime,@zt2 int output) 
    AS
    BEGIN
    DECLARE @PROCNAME CHAR(30)
    DECLARE @SQL VARCHAR(8000)
    declare @zt1 smallint
    SELECT @PROCNAME=rtrim(jzPROC) FROM DJLX WHERE LXH=@DJLX
    --SET @SQL='EXECUTE '+rtrim(@PROCNAME)+'  '''+rtrim(@DJH)+''','''+rtrim(@CZY)+''''
    set @djh=rtrim(@djh)
    set @czy=rtrim(@czy)
    --IF @PROCNAME IS not NULL EXEC(@SQL)
    execute @PROCNAME @DJH,@CZY,@jzrq,@zt2 outputEND