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.