ALTER PROCEDURE dbo.CM_GOODS_Upd @p_GD_ID varchar(150) = null , @p_GD_CODE varchar(150) = NULL , @p_GD_NAME nvarchar(200) = NULL , @p_GD_TYPE_ID varchar(15) = NULL , @p_DESCRIPTION nvarchar(2000) = NULL , @p_SUP_ID varchar(15) = NULL , @p_PRICE decimal(17) = NULL , @p_UNIT_ID varchar(15) = NULL , @p_NOTES nvarchar(1000) = NULL , @p_RECORD_STATUS varchar(1) = NULL , @p_MAKER_ID varchar(12) = NULL , @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL , @p_CHECKER_ID varchar(12) = NULL , @p_APPROVE_DT VARCHAR(20) = NULL, @p_DVDM_ID VARCHAR(20) = NULL, @p_MONTHLY_ALLOCATED BIT =NULL AS DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( EXISTS ( SELECT * FROM CM_GOODS WHERE GD_CODE = @p_GD_CODE AND [GD_ID] != @p_GD_ID AND RECORD_STATUS = '1')) SET @ERRORSYS = 'CMCD-00001' IF ( NOT EXISTS ( SELECT * FROM CM_GOODS WHERE [GD_ID] = @p_GD_ID)) SET @ERRORSYS = 'CMC-00001' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION UPDATE CM_GOODS SET [GD_CODE] = @p_GD_CODE,[GD_NAME] = @p_GD_NAME,[GD_TYPE_ID] = @p_GD_TYPE_ID,[DESCRIPTION] = @p_DESCRIPTION,[SUP_ID] = @p_SUP_ID,[PRICE] = @p_PRICE,[UNIT_ID] = @p_UNIT_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), [DVDM_ID] = @p_DVDM_ID,MONTHLY_ALLOCATED=@p_MONTHLY_ALLOCATED WHERE GD_ID= @p_GD_ID UPDATE CM_GOOD_DVDM SET DVDM_ID = @p_DVDM_ID WHERE GD_ID = @p_GD_ID IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT 0 as Result, @p_GD_ID GD_ID, '' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT -1 as Result, '' GD_ID, '' ErrorDesc RETURN -1 End