Está en la página 1de 5

Objetivo:

Genera procesos automáticos aplicando triggers en SQL.


Conocer que es y cómo funciona un Trigger en SQL
Aprender qué es un trigger y dominar su sintaxis.
Aplicar la teoría aprendida con la implementación de triggers en las practicas más
comunes.
Justificación:
Según Herrarte Pedro, un trigger(o 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”.
Los TRIGGERS o también llamados disparadores de eventos son los que se
encargan de activar procesos automáticos en las bases de datos, al utilizar una
instrucción DML específica, como “INSERT”, “DELECT” o “UPDATE”.
SQL Server proporciona los siguientes tipos de triggers:
Trigger DML, se ejecutan cuando un usuario intenta modificar datos mediante un
evento de lenguaje de manipulación de datos (DML). Los eventos DML son
instrucciones INSERT, UPDATE o DELETE de una tabla o vista.
Trigger DDL, se ejecutan en respuesta a una variedad de eventos de lenguaje de
definición de datos (DDL). Estos eventos corresponden principalmente a
instrucciones CREATE, ALTER y DROP de Transact-SQL, y a determinados
procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL.
Las instrucciones de triggers DML utilizan dos tablas especiales denominadas
inserted y deleted. SQL Server crea y administra automáticamente ambas tablas.
La estructura de las tablas inserted y deleted es la misma que tiene la tabla que ha
desencadenado la ejecución del trigger.
La primera tabla (inserted) solo está disponible en las operaciones INSERT y
UPDATE y en ella están los valores resultantes después de la inserción o
actualización. Es decir, los datos insertados. Inserted estará vacía en una
operación DELETE.
En la segunda (deleted), disponible en las operaciones UPDATE y DELETE, están
los valores anteriores a la ejecución de la actualización o borrado. Es decir, los
datos que serán borrados. Deleted estará vacía en una operación INSERT.
¿No existe una tabla UPDATED? No, hacer una actualización es lo mismo que
borrar (deleted) e insertar los nuevos (inserted). La sentencia UPDATE es la única
en la que inserted y deleted tienen datos simultáneamente.
Desarrollo:
Cada “TRIGGER” esta anclado solamente a una tabla y funcionan para proteger a
la base de datos de alteraciones. Para la creación de un “TRIGGER” se sigue el
siguiente procedimiento:
1.En una nueva consulta escribir “CREATE TRIGGER”, después escribir el
nombre del mismo.
2.Despues escribir “ON” y el nombre de la tabla a la que se quiere anclar el
“TRIGGER”
3.Escribir “AFTER” y la o las instrucciones del DML con las que se activara el
“TRIGGER”. En lugar de “AFTER”, también se puede poner un “FOR”; la
diferencia será el tiempo de activación del “TRIGGER”: con “FOR” se activa
primero el “TRIGGER” y después la instrucción DML.

Mientras que con “AFTER” es al revés; se realiza primero la instrucción DML y


después el “TRIGGER”.

4.Luego de lo anterior se escribe “AS BEGIN END”.

He aquí un ejemplo del funcionamiento de los “TRIGGERS”:


En la base de datos que se esta desarrollando, se requiere que cuando exista una
inserción a la tabla “Order Details”, se reste la cantidad de productos comprados
de la tabla “Products”.

Para realizarlo, se siguen estos pasos:


1.Nombrar al “TRIGGER” y después de “ON” se escribe el nombre de la tabla, que
será “[Oreder Details]”. En este caso, el “TRIGGER” se ejecutara antes de la
inserción a la tabla por lo que se tendrá que poner “FOR INSERT”, para verificar
que haya producto en existencia.
2.El código de lo que se realizara se pone entre “BEGIN y END”.

3.Declarar las siguientes variables: “Cantidad”, “Producto” y “Almacen”, pero


teniendo en cuenta que deben ser del mismo tipo de dato de las columnas que se
va a consultar para llenarlas.
4.Para obtener los datos que se acaban de insertar con la siguiente consulta,
utilizar: “SELECT” e igualar las variables declaradas a las insertadas como
“Cantidad igual a Quantity” y “Producto igual ProductID”. Escribir “FROM
INSERTED”.
5.Para obtener los datos del almacén que se encuentran en la tabla “Productos”
utilizar una consulta, hay que igualar la llave primaria a la variable “Producto”.
6.Realizar un “UPDATE” a la tabla “Productos” para cambiar el campo
“UnitslnStock” con la resta de “Stock” y “Cantidad”.
7.Escribir “WHERE” e iguala la llave primaria a la variable “Producto”.
8.Ejecutar el “TRIGGER” para guardarlo en a base de datos. Si se desea cambiar
el “TRIGGER”, en vez de “CREATE”, se escribe “ALTER” porque si no, dará un
error de sistema.
Conclusiones:
Concluimos que un trigger es una clase especial de procedimiento
almacenado que se ejecuta automáticamente cuando se produce un evento en el
servidor de bases de datos, también se puede concluir que un trigger solo se
pueden aplicar a una tabla específica, es decir, un trigger no sirve para dos o más
tablas.
Cabe destacar que es muy importante el estudiar bien la sintaxis de un trigger
para no confundirnos ya que en la práctica es un procedimiento almacenado, pero
de uso interno al DBMS, por lo cual no usa parámetros y investigar más a fondo el
tema de triggers para obtener un conocimiento más amplio y captar de mejor
manera la información.

También podría gustarte