Mostrando entradas con la etiqueta mensaje de error. Mostrar todas las entradas
Mostrando entradas con la etiqueta mensaje de error. Mostrar todas las entradas

viernes, 25 de agosto de 2017

SQL - Transacciones y errores

USE [leaseoper]
GO

/****** Object:  StoredProcedure [dbo].[pa_lo_sel_bienes_pozo_solicitud_reemplazo]    Script Date: 08/25/2017 17:43:58 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pa_lo_sel_bienes_pozo_solicitud_reemplazo]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[pa_lo_sel_bienes_pozo_solicitud_reemplazo]
GO

USE [leaseoper]
GO

/****** Object:  StoredProcedure [dbo].[pa_lo_sel_bienes_pozo_solicitud_reemplazo]    Script Date: 08/25/2017 17:43:58 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

/*
-- =============================================
 Author:        Joel Castillo
 Create date: 25-08-2017
 Description: Obtiene bienes que pueden ser reemplazados   
 Ejecución:
            --salta error
            leaseoper..pa_lo_sel_bienes_pozo_solicitud_reemplazo 17
            --trae bienes
            leaseoper..pa_lo_sel_bienes_pozo_solicitud_reemplazo 333

 Utilizado en: /Paginas/AdmContratos/ReemplazoBienPorGarantia/SolicitudReemplazoBien.aspx
-- =============================================
*/
CREATE PROCEDURE [dbo].[pa_lo_sel_bienes_pozo_solicitud_reemplazo]
@operacion NUMERIC(20,0)
AS
BEGIN

BEGIN TRANSACTION
BEGIN TRY
----------------------------------------------
--VARIABLES
----------------------------------------------
DECLARE @estado_operacion TINYINT
       ,@msg_error VARCHAR(MAX)


----------------------------------------------
--VALIDACIONES
----------------------------------------------

SELECT @estado_operacion = ISNULL(estado_operacion,99)
FROM leaseoper..t_contratos
WHERE operacion = @operacion

IF(@estado_operacion NOT IN (1,2))
BEGIN 
--CAE AL CATCH
 RAISERROR('Operación debe estar Vigente...',16,1)
END

----------------------------------------------
--SALIDA
----------------------------------------------

SELECT d.cod_material
      ,d.num_material
      ,d.descripcion
      ,d.rut_proveedor
      ,d.num_factura
      ,d.fecha_compra_mat
      ,d.valor_libro_inicial_mat
      ,d.cod_est_mat
      ,d.cod_rubro
      ,d.cod_rubro_especifico
      ,(SELECT ISNULL(r.descripcion,'')
       FROM leasecom..p_rubros_especificos r
       WHERE r.cod_rubro = d.cod_rubro AND r.cod_rubro_especifico = d.cod_rubro_especifico) AS descripcion_rubro      
FROM  leaseoper..t_bienes_detalle d
WHERE operacion = @operacion


COMMIT TRANSACTION
END TRY
BEGIN CATCH
    ROLLBACK TRANSACTION
--RESCATA ERROR Y LO MUESTRA
    SET @msg_error = (SELECT CONVERT(varchar(max), ERROR_MESSAGE()))
     RAISERROR (@msg_error,16,1)
     RETURN
END CATCH
   
END

GO