Está en la página 1de 10

TRIGGERS

Desencadenadores
Un Desencadenador (Trigger) es un tipo especial de
procedimiento almacenado que se activa de forma
controlada por sucesos antes que por llamadas
directas.

Los desencadenadores (Triggers) están asociados a


tablas.
Desencadenadores
Son una gran herramienta para controlar las reglas de
negocio más complejas que una simple integridad
referencial, los desencadenadores (Triggers) y las
sentencias que desencadenan su ejecución trabajan
unidas como una transacción.
Desencadenadores
El grueso de instrucciones de la definición del
Desencadenador deben ser INSERT, UPDATE o
DELETE, aunque se puede utilizar SELECT.

No es recomendable ya que el usuario no espera que


se le devuelva registros luego de agregar o modificar
información.
Desencadenadores
Los desencadenadores (Triggers) siempre toman
acción después de que la operación fue registrada en
el log.
Desencadenadores
 Un Desencadenador para inserción de registros
genera automáticamente una tabla en el cache con la
información que intenta añadir, esta tablita se
denomina INSERTED y es a través de esta tabla que
se pueden hacer comparaciones en otras tablas.
Desencadenadores
Un Desencadenador para eliminación de registros
genera automáticamente una tabla en el cache con la
información que intenta eliminar, esta tablita se
denomina DELETED y es a través de esta tabla que se
pueden hacer comparaciones en otras tablas.
Si se trata de un Desencadenador para actualización
se generan ambas tablas INSERTED con los nuevos
datos y DELETED con la información que será
reemplazada.
Desencadenadores
Para crear un Desencadenador puede utilizar el
siguiente formato:
CREATE TRIGGER<Nombre del Desencadenador>
ON <Nombre de la Tabla>
FOR / <INSERT / UPDATE/ DELETE>
AS
Sentencias….
GO
Desencadenadores DML
 Pueden proteger contra operaciones INSERT, UPDATE y
DELETE incorrectas o dañinas, y exigir otras restricciones
que sean más complejas que las definidas con restricciones
CHECK.

 A diferencia de éstas, los desencadenadores DML pueden


hacer referencia a columnas de otras tablas.

 Por ejemplo, un desencadenador puede utilizar una


instrucción SELECT de otra tabla para comparar con los
datos insertados o actualizados y para realizar acciones
adicionales, como modificar los datos o mostrar un
mensaje de error definido por el usuario.
Desencadenadores DML
Pueden evaluar el estado de una tabla antes y después
de realizar una modificación de datos y actuar en
función de esa diferencia.

Varios desencadenadores DML del mismo tipo


(INSERT, UPDATE o DELETE) en una tabla permiten
realizar distintas acciones en respuesta a una misma
instrucción de modificación

También podría gustarte