miércoles, 2 de junio de 2021

Triggers

Un disparador es un objeto con nombre dentro de una base de datos el cual se asocia con una tabla y se activa cuando ocurre en ésta un evento en particular. La utilidad principal de un trigger es mejorar la gestión de la base de datos, ya que no requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las REGLAS DE NEGOCIO (tipo especial de integridad) de una base de datos.

Sintaxis básica:

Create trigger NOMBREDISPARADOR

On NOMBRETABLA

For EVENTO- insert, update o delete

As 

SENTENCIAS

Analizamos la sintaxis:

- "Create trigger" junto al nombre del disparador.

- "On" seguido del nombre de la tabla o vista para la cual se establece el trigger.

- Luego de "for", se indica la acción (evento, el tipo de modificación) sobre la tabla o vista que activará el trigger. Puede ser "insert", "update" o "delete". Debe colocarse al menos UNA acción, si se coloca más de una, deben separarse con comas.

- Luego de "as" viene el cuerpo del trigger, se especifican las condiciones y acciones del disparador; es decir, las condiciones que determinan cuando un intento de inserción, actualización o borrado provoca las acciones que el trigger realizará.

Consideraciones generales:

- "Create trigger" debe ser la primera sentencia de un bloque y sólo se puede aplicar a una tabla.

- Un disparador se crea solamente en la base de datos actual pero puede hacer referencia a objetos de otra base de datos.

- Las siguientes instrucciones no están permitidas en un desencadenador: create database, alter database, drop database, load database, restore database, load log, reconfigure, restore log, disk init, disk resize.

- Se pueden crear varios triggers para cada evento, es decir, para cada tipo de modificación (inserción, actualización o borrado) para una misma tabla. Por ejemplo, se puede crear un "insert trigger" para una tabla que ya tiene otro "insert trigger".

 Ejemplo:

Un sencillo ejemplo (para SQL Server) sería crear un Trigger para insertar un pedido de algún producto cuando la cantidad de éste, en nuestro almacén, sea inferior a un valor dado.

CREATE TRIGGER TR_ARTICULO
	ON ARTICULOS 
	AFTER UPDATE 
		AS 
			BEGIN
				INSERT INTO HCO_ARTICULO 
				(IDARTICULO, STOCK, FECHA)
				SELECT ID_ARTICULO, STOCK, GETDATE()
				FROM INSERTED 
			END 
			
INSERT INTO ARTICULOS VALUES (1, 'MEMORIA', 12, '12/03/2014')

SELECT * FROM ARTICULOS

UPDATE ARTICULOS
SET STOCK = STOCK - 20
WHERE ID_ARTICULO = 1

SELECT * FROM HCO_ARTICULO
Un trigger se construye bajo la siguiente estructura:

-Llamada de activación o disparador del código a ejecutar.
-Restricción o condición que se requiere para realizar la acción, que puede ser una condición o una nulidad.
-Acción de ejecución, que corresponde a las instrucciones de ejecución después de verificar las condiciones o restricciones.

Un trigger puede programarse, por ejemplo, para:

-Mantener una copia actualizada de los clientes que ingresen a una tienda online.
-Realizar un pedido de un producto, cuando el stock en el almacén llegue a una cantidad -determinada.
-Llevar un registro de las acciones realizadas por cada usuario sobre una base de datos.
-Generar de manera automática cálculos sobre una o varias columnas.
-Evitar la entrada de datos inválidos o transacciones no permitidas.
-Realizar auditorías sobre las actividades de los usuarios.
-Sincronizar tablas que duplican información.
-Llevar estadísticas sobre el acceso a la base de datos.
-Visualizar determinados eventos o generar alertas cuando se generen ciertas acciones en la base de datos.

No hay comentarios.:

Publicar un comentario

Seguridad de la información

 ¿Qué es la seguridad de información? La  seguridad informática  es una disciplina  que  se encarga de proteger la integridad y la privacida...