Base de
Datos 2
Trigges(Desencadenadores)
Jennifer Rodriguez
Contenido
Trigger (Desencadenadores)
Ventajas y desventajas de los triggers
Combinaciones
Tipos de triggers
Crear, modificar, eliminar y ejecutar triggers
Jennifer Rodriguez
Trigger (Desencadenadores)
Un trigger o desencadenador es un objeto que se asocia con tablas y se almacena en la base de datos. Su nombre se deriva por el comportamiento que
presentan en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se
ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla.
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. Una Regla de Negocio es cualquier restricción, requerimiento, necesidad
o actividad especial que debe ser verificada al momento de intentar agregar, borrar o actualizar la información de una base de datos. Los triggers pueden
prevenir errores en los datos, modificar valores de una vista, sincronizar tablas, entre otros.
Componentes principals:
Llamada de activación: es la sentencia que permite "disparar" el código a ejecutar.
Restricción: es la condición necesaria para realizar el código. Esta restricción puede ser de tipo condicional o de tipo nulidad.
Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales.
Jennifer Rodriguez
Ventajas de los triggers
• Ofrece chequeos de seguridad basada en valores.
• Restricciones dinámicas de integridad de datos y de integridad referencial.
• Asegura que las operaciones relacionadas se realizan juntas de forma implícita.
• Respuesta inmediata ante un evento auditado.
• Ofrece mayor control sobre la BD.
Jennifer Rodriguez
Desventajas de los triggers
• Hay que definir con anticipación la tarea que realizara trigger
• Peligro de pérdida en realizaciones.
• Nunca se llama directamente.
• Solo se pueden aplicar a una tabla especifica, es decir, un trigger no sirve para dos o más tablas
• El trigger se crea en la base de datos que de trabajo pero desde un trigger puedes hacer referencia a otras bases de datos.
• Un Trigger devuelve resultados al programa que lo desencadena de la misma forma que un Stored Procedure aunque no es
lo más idóneo, para impedir que una instrucción de asignación devuelva un resultado se puede utilizar la sentencia SET
NOCOUNT al principio del Trigger.
Jennifer Rodriguez
Combinaciones
La acción del trigger, siempre que no se viole la restricción del trigger se ejecuta dependiendo de la combinación de tipos de trigger:
• Before statement: Antes de ejecutar la sentencia de disparo.
• Before row: Antes de modificar cada fila afectada por la sentencia de disparo, y antes de chequear las restricciones de
integridad apropiadas .
• After stetement: Después de ejecutar la sentencia de disparo, y después de chequear las restricciones de integridad
apropiadas.
• After row: Después de modificar cada fila afectada por la sentencia de disparo y posiblemente aplicando las restricciones de
integridad apropiadas .
Jennifer Rodriguez
Tipos
Existen dos tipos de disparadores que se clasifican según 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 condición, su ejecución es única.
Pueden ser de sesión y almacenados; pero no son recomendables
Jennifer Rodriguez
Características
• No aceptan parámetros o argumentos (se puede 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
• Pueden causar errores de mutaciones en las tablas, si se han escrito de manera deficiente.
• Crea Tablas virtuales SQL Server proporciona dos tablas virtuales que están disponibles específicamente para los trigger
llamados INSERTED y DELETED. Estas tablas capturan los datos del registro antes y después de que ocurra el evento.
Jennifer Rodriguez
Crear un trigger
sintaxis
CREATE TRIGGER nombre del trigger
ON tabla en la que se ejecutara
AFTER {[INSERT],[UPDATE],[DELETE]} (momento en el que se disparara)
AS
BEGIN RAISERROR
Sentencias sql a ejecutar
END
Jennifer Rodriguez
Modificar un trigger
sintaxis
ALTER TRIGGER nombre del trigger
ON tabla en la que se ejecutara
AFTER {[INSERT],[UPDATE],[DELETE]} (momento en el que se disparara)
AS
BEGIN RAISERROR
Sentencias sql a ejecutar
END
Jennifer Rodriguez
Eliminar un trigger
sintaxis
DROP TRIGGER nombre del trigger;
Jennifer Rodriguez