Tecnología

SQL-SERVER TRIGGER



SQL-SERVER TRIGGER - Tecnología

1.¿Qué es un Trigger y para qué sirve?

Un “Trigger” (disparador o desencadenador) es un tipo de Procedimiento Almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista).

Si se intenta modificar (agregar, actualizar o eliminar) datos de una tabla en la que se definió un disparador para alguna de estas acciones (inserción, actualización y eliminación), el disparador se ejecuta (se dispara) en forma automática.

Un trigger se asocia a un evento (inserción, actualización o borrado) sobre una tabla.

2.¿Cuáles son los beneficios de usar Trigger?

  • Ventajas de las restricciones:
    • Las restricciones (y reglas) son más rápidas que los triggers
    • Las restricciones no requieren codificación adicional
    • Es mejor para chequear datos antes de ingresarlos a la base de datos
  • Ventajas de los triggers:
    • Muy flexible
  • Los triggers pueden hacer cualquier cosa que se pueda codificar
    • Mejor para las reglas complejas del negocio que no se pueden expresar como restricciones referenciales tales como actualizaciones o borrados en cascada

3.¿Donde se almacenan los Trigger?

Un trigger se asocia a un evento (inserción, actualización o borrado) sobre una tabla.

4¿Para qué tipo de instrucciones se pueden definir un Trigger?

Si se intenta modificar (agregar, actualizar o eliminar) datos de una tabla en la que se definió un disparador para alguna de estas acciones (inserción, actualización y eliminación), el disparador se ejecuta (se dispara) en forma automática.

5.Indique los casos en que se deben usar  los Trigger’s

  • Hacer modificaciones en cascada sobre tablas relacionadas
  • Deshacer cambios que violan la integridad de los datos
  • Forzar restricciones que son muy complejas para reglas y restricciones
  • Mantener datos duplicados
  • Mantener columnas con datos derivados
  • Hacer ajustes de registros

6.¿Cuándo se activa un Trigger?

  • Cuando se modifica un dato en una tabla que tiene declarado un Trigger para esa sentencia, el Trigger se “dispara”
    • El trigger se dispara una vez, independientemente del número de filas afectadas
    • El trigger se dispara aunque no hayan filas afectadas
  • Un trigger es parte de la transacción que causa el disparo
  • El trigger puede deshacer:
    • Así mismo solamente
    • Así mismo y la sentencia que causa el disparo
    • La transacción total

7.¿Cual es la función de la tabla INSERTED?

  • inserted y deleted son dos tablas que se crean automáticamente cada vez que se dispara un trigger
  • inserted almacena cualquier fila que se vaya a añadir a la tabla
  • deleted almacena cualquier fila que se vaya a borrar de la tabla
  • La instrución insert adiciona filas a la tabla inserted

8.¿Cual es la funcion de la tabla DELETED?

  • La instruccion delete adiciona filas a la tabla deleted

9.¿Cómo crear un Trigger?

  • Sintaxis :

create trigger nombre_trigger

     on nombre_tabla

for {insert | update | delete} [, {insert | update | delete} …]

as

                     instrucciones

10.¿Cómo borrar un Trigger?

Sintaxis simplificada:

drop trigger nombre_trigger

11.¿Cómo ejecutar un Trigger?

El trigger es una “subrutina”, igual que un Procedimiento Almacenado, con la diferencia de que se “conecta” a una operación de inserción, modificación o borrado en una tabla de la base de datos. Para ejecutarlo, basta realizar sobre la tabla la operación correspondiente. La operación se realiza, y a continuación se ejecuta el trigger. Como el Trigger se ejecuta dentro de la misma transacción que la operación original, puede hacer un “rollback” y eso impide que se realice la operación original que lo disparó.

12.Explique las diferencias entre Restricciones y Trigger en una Base de Datos

Los disparadores, a diferencia de las restricciones “check”, pueden hacer referencia a campos de otras tablas.

Por ejemplo, puede crearse un trigger de inserción en la tabla “ventas” que compruebe el campo “stock” de un artículo en la tabla “artículos”; el disparador controlaría que, cuando el valor de “stock” sea menor a la cantidad que se intenta vender, la inserción del nuevo registro en “ventas” no se realice.

Los triggers se ejecutan DESPUES de la ejecución de una instrucción “insert”, “update” o “delete” en la tabla en la que fueron definidos.

Las restricciones se comprueban ANTES de la ejecución de una instrucción “insert”, “update” o “delete”.

Por lo tanto, las restricciones se comprueban primero, si se infringe alguna restricción, el desencadenador no llega a ejecutarse.

 

 

¿Te ha gustado el artículo? ¡Valóralo!

0.00 - 0 votos
Cuanto más alta sea la valoración más visible será el artículo en portada.
¡Compártelo en las redes sociales!

Acerca del autor

Elvisju21

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.