lunes, 26 de septiembre de 2011

[INF-272] PROYECTO : Transacciones

--****************************
--TRANSACCIONES***************
--****************************
--1.- MEDIANTE TRANSACCCIONES CAMBIAR EL NOMBRE  Y PRECIO DE COMPRA
--DEL PRODUCTO DE NOMBRE X
ALTER PROCEDURE SP1 @NOMBRE VARCHAR(255),
    @NUEVO_NOMBRE VARCHAR(255), @PRECIO_COMPRA NUMERIC(19,2)
AS
BEGIN
    BEGIN TRAN
    BEGIN TRY
        UPDATE PRODUCTOS SET NOMBRE=@NUEVO_NOMBRE,
                            PRECIO_COMPRA=@PRECIO_COMPRA
        WHERE NOMBRE=@NOMBRE 
        COMMIT TRAN
        PRINT 'SE REALIZO CON EXITO LA TRANSACCION'
    END TRY
    BEGIN CATCH
        PRINT 'HA OCURRIDO UN ERROR!!'
        ROLLBACK TRAN
    END CATCH
END
EXEC SP1 'GASEOSA', 'REFRESCO', 12.5

--2.- MEDIANTE TRANSACCIONES ACTULIZAR EL ESTADO DE LA MESA X AS UN ESTADO Y
ALTER PROCEDURE SP2 (@XMESA INTEGER, @YESTADO VARCHAR (255))
AS
BEGIN
    DECLARE @ERROR INTEGER
    BEGIN TRAN
    UPDATE MESAS SET ESTADO=@YESTADO
                WHERE ID_MESA=@XMESA
    SET @ERROR=@@ERROR
    IF (@ERROR=0)
    BEGIN
        COMMIT TRAN
        PRINT 'EXITO EN LA TRANSACCION'
    END
    ELSE
    BEGIN
        ROLLBACK TRAN
        PRINT 'HA OCURRIDO UN ERROR!!!'
    END
END
EXEC SP2 1,'DISPONIBLE'
SELECT * FROM MESAS


No hay comentarios:

Publicar un comentario