Resumen Proc & Triggers

PROCEDIMIENTOS ALMACENADOS Fundamento Teórico Ejemplo Proc sin parámetros Ejemplo Proc con parámetros Un procedimient

Views 60 Downloads 0 File size 278KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

PROCEDIMIENTOS ALMACENADOS Fundamento Teórico

Ejemplo Proc sin parámetros

Ejemplo Proc con parámetros

Un procedimiento almacenado es un objeto perteneciente a una base de datos, que contiene un conjunto de instrucciones SQL, tanto de consulta, como de manipulación de datos, como de control de la secuencia del programa; que están asociados a un nombre y que son ejecutados en conjunto.

-- Verificar precios de libro CREATE PROCEDURE VENTA_POR_LIBRO AS BEGIN SELECT TITULO,PRECIO*CANTIDAD AS [COSTO DE VENTA] FROM LIBRO,DETALLE_FACTURA,FACTURA WHERE LIBRO.ID=DETALLE_FACTURA.ID_LIBRO AND DETALLE_FACTURA.ID_FACTURA=FACTUR A.ID GROUP BY LIBRO.ID,TITULO,PRECIO*CANTIDAD END

-- Insertar registro a tablas validando datos CREATE PROCEDURE INSERT_EDITORIAL @ID INT, @NOMBRE NVARCHAR(50), @PAIS NVARCHAR(50) AS IF NOT EXISTS(SELECT ID FROM EDITORIAL WHERE ID=@ID) BEGIN IF (SELECT COUNT(*) FROM EDITORIAL WHERE NOMBRE=@NOMBRE AND PAIS=@PAIS)=0 BEGIN INSERT INTO EDITORIAL(ID, NOMBRE, PAIS) VALUES(@ID, @NOMBRE, @PAIS) END ELSE BEGIN PRINT '¡ERROR, NO SE PUEDE REGISTRAR EL EDITORIAL '+@NOMBRE+ ' DEBIDO A QUE EXISTE EL NOMBRE DE LA EDITORIAL EN EL PAIS '+@PAIS END END ELSE BEGIN PRINT '¡ERROR, EL ID QUE ESTÁ TRATANDO DE INGRESAR YA EXISTE!' END

Puede contener parámetros tanto de entrada como de salida (parámetros pasados por referencia), así como devolver un valor de retorno. Su sintaxis básica es: Create procedure

As Begin

End

-- Ejecutar procedimientos EXEC VENTA_POR_LIBRO

La sintaxis de la llamada a un procedimiento almacenado, depende de cómo se halla creado dicho procedimiento; sin embargo, generalmente es la siguiente: Exec Exec

STORED PROCEDURES & TRIGGERS

-- Ejecutar procedimiento EXEC INSERT_EDITORIAL 1, 'OMEGA 2000', 'COLOMBIA'

Presentado por: Josué Granados * Emmanuel Mejía * Fátima Orantes * Ariel Torres * Danilo Santos

DESENCADENADORES Fundamento Teórico

Ejemplo Trigger DML

Ejemplo Trigger DDL

Un desencadenador es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos.

-- Actualizar existencias CREATE TRIGGER ACTUALIZAR_EXISTENCIA ON DETALLE_FACTURA FOR INSERT AS DECLARE @ID_LIBRO INT DECLARE @CANTIDAD_SOLICITADA INT DECLARE @CANTIDAD_EXISTENTE INT SET @ID_LIBRO = (SELECT ID_LIBRO FROM INSERTED) SET @CANTIDAD_SOLICITADA = (SELECT CANTIDAD FROM INSERTED) SET @CANTIDAD_EXISTENTE= (SELECT STOCK FROM LIBRO WHERE ID=@ID_LIBRO) IF (@CANTIDAD_EXISTENTE < @CANTIDAD_SOLICITADA ) BEGIN RAISERROR ('LO SIENTO LA CANTIDAD SOLICITADA ES MAYOR A LA EXISTENCIA,INTENTE DE NUEVO ',16,1) END ELSE BEGIN UPDATE LIBRO SET STOCK =(@CANTIDAD_EXISTENTE@CANTIDAD_SOLICITADA ) WHERE ID=@ID_LIBRO END

-- Denegar borrado y alteración -- de tablas CREATE TRIGGER BORRAR_ACTUALIZAR ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS BEGIN RAISERROR('NO ESTA PERMITIDO ACTUALIZAR O BORRAR TABLAS', 16, 1); ROLLBACK TRANSACTION END

SQL Server proporciona los siguientes tipos de disparadores: 

Trigger DML, se ejecutan cuando se intenta ejecutar acciones de lenguaje de manipulación de datos (insert, update y delete)



Trigger DDL, se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos (create, alter y drop)

La sintaxis básica para crear un disparador es: Create trigger On For As Begin

End

STORED PROCEDURES & TRIGGERS

Presentado por: Josué Granados * Emmanuel Mejía * Fátima Orantes * Ariel Torres * Danilo Santos