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.
No hay comentarios.:
Publicar un comentario