You are on page 1of 2

Los Triggers o Disparadores son objetos que se asocian con tablas y se almacenan en la base

de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya


que se ejecutan cuando sucede algn evento sobre las tablas a las que se encuentra
asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de insercin
(INSERT), borrado (DELETE) o actualizacin (UPDATE), ya que modifican los datos de una
tabla.
La utilidad principal de un trigger es mejorar la administracin 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. Una Regla de
Negocio es cualquier restriccin, requerimiento, necesidad o actividad especial que debe ser
verificada al momento de intentar agregar, borrar o actualizar la informacin de una base de
datos. Un trigger puede prevenir errores en los datos, modificar valores de una vista,
sincronizar tablas, entre otros.

ndice

Componentes principales[editar]
La estructura bsica de un trigger es:

Llamada de activacin: es la sentencia que permite "disparar" el cdigo a ejecutar.


Restriccin: es la condicin necesaria para realizar el cdigo. Esta restriccin puede ser
de tipo condicional o de tipo nulidad.
Accin a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han
cumplido las condiciones iniciales.

Tipos[editar]
Existen dos tipos de disparadores que se clasifican segn la cantidad de ejecuciones a
realizar:

Row Triggers (o Disparadores de fila): son aquellas que se ejecutaran cada vez que se
llama al disparador desde la tabla asociada al trigger
Statement Triggers (o Disparadores de secuencia): son aquellos que sin importar la
cantidad de veces que se cumpla con la condicin, su ejecucin es nica.
Pueden ser de sesin y almacenados; pero no son recomendables[cita requerida].

Efectos y caractersticas[editar]
No aceptan parmetros o argumentos (pero podran almacenar los datos afectados en
tablas temporales)
No pueden ejecutar las operaciones COMMIT o ROLLBACK porque estas son parte de la
sentencia SQL del disparador (nicamente a travs de transacciones autnomas)
Pueden causar errores de mutaciones en las tablas, si se han escrito de manera
deficiente.
Consideraciones Generales y Beneficios:

* No se pueden invocar por si mismos, se disparan automticamente
* No reciben ni retornan parmetros
* A diferencia de los constraint check pueden hacer referencia a otras tablas (por
ejemplo se puede controlar una insercin en una tabla de ventas si y solo si el valor de un
campo stock de una tabla artculos sea mayor a x cantidad)
* Se pueden crear ms de un trigger para un mismo evento en una tabla, con lo cual
se pueden controlar mltiples alternativas sobre la misma tabla.
* Permiten evaluar el estado de una tabla antes y despus de una modificacin y tomar
acciones acorde a la evaluacin
* Permiten customizar mensajes de error, algo que los constraints en general no
permiten.
Syntaxis:
CREATE TRIGGER <Nombre del Trigger>
ON <Nombre de la Tabla>
AFTER <INSERT,DELETE,UPDATE>
AS
BEGIN
SET NOCOUNT ON;
-- Inserta aqu las instrucciones
END
Consideraciones Adicionales:

- Los triggers DML utilizan dos tablas especiales denominadas Inserted y Deleted.
- Son tablas creadas automticamente por el SQL con la misma estructura que la tabla
sobre la cual est definido el trigger
- La tabla Inserted solo tiene datos en operaciones de Insert y Update
- La tabla Deleted slo tiene datos en operaciones de Delete y Update
- En caso de un update las tablas Inserted y Deleted tienen data al mismo tiempo.
- No se pueden modificar los datos de estas tablas