logo

Activador SQL | Base de datos de estudiantes

Un disparador es un procedimiento almacenado en una base de datos que lo invoca automáticamente cada vez que ocurre un evento especial en la base de datos. Por ejemplo, se puede invocar un desencadenador cuando se inserta una fila en una tabla específica o cuando se actualizan columnas específicas de la tabla. En palabras simples, un disparador es una colección de SQL declaraciones con nombres particulares que se almacenan en la memoria del sistema. Pertenece a una clase específica de procedimientos almacenados que se invocan automáticamente en respuesta a eventos del servidor de bases de datos. Cada disparador tiene una tabla adjunta.

Debido a que un desencadenador no se puede llamar directamente, a diferencia de un procedimiento almacenado, se lo denomina procedimiento especial. Se llama automáticamente a un activador cada vez que se produce un evento de modificación de datos en una tabla, que es la principal distinción entre un activador y un procedimiento. Por otro lado, se debe llamar directamente a un procedimiento almacenado.



Las siguientes son las diferencias clave entre desencadenadores y procedimientos almacenados:

Multiplexor 2 a 1
  1. Los desencadenadores no se pueden invocar ni ejecutar manualmente.
  2. No hay posibilidad de que los activadores reciban parámetros.
  3. Una transacción no se puede confirmar ni revertir dentro de un desencadenador.

Sintaxis:

crear disparador [trigger_name]



[antes | después]

insertar

en [nombre_tabla]



[por cada fila]

[cuerpo_disparador]

Explicación de la sintaxis

  1. Crear disparador [nombre_disparador]: crea o reemplaza un disparador existente con el nombre_disparador.
  2. [antes | after]: Esto especifica cuándo se ejecutará el disparador.
  3. insertar: Esto especifica la operación DML.
  4. En [nombre_tabla]: esto especifica el nombre de la tabla asociada con el activador.
  5. [para cada fila]: Esto especifica un activador a nivel de fila, es decir, el activador se ejecutará para cada fila afectada.
  6. [trigger_body]: Esto proporciona la operación que se realizará cuando se activa el disparador.

¿Por qué empleamos desencadenantes?

Cuando necesitemos realizar algunas acciones de forma automática en determinados escenarios deseables, los disparadores serán útiles. Por ejemplo, debemos ser conscientes de la frecuencia y el momento de los cambios en una tabla que cambia constantemente. En tales casos, podríamos crear un activador para insertar los datos requeridos en una tabla diferente si la tabla principal sufrió algún cambio.

Diferentes tipos de desencadenadores en SQL Server

Existen dos categorías de desencadenantes:

  1. Disparador DDL
  2. Activador DML
  3. Activadores de inicio de sesión

Activadores DDL

Los eventos de comando del lenguaje de definición de datos (DDL), como Create_table, Create_view, drop_table, Drop_view y Alter_table, hacen que se activen los activadores de DDL.

servidor SQL

  create trigger safety    on database  for   create_table,alter_table,drop_table  as   print 'you can not create,drop and alter tab>

Producción:

Activadores DML

Los eventos de comando de lenguaje de manipulación de datos (DML) que comienzan con Insertar, Actualizar y Eliminar activan los activadores de DML. correspondiente a insert_table, update_view y delete_table.

servidor SQL

create trigger deep  on   emp  for insert,update ,delete   as   print 'you can not insert,update and delete this table i' rollback;>

Producción:

Activadores de inicio de sesión

Los desencadenantes de inicio de sesión son incendios en respuesta a un evento de inicio de sesión. Cuando se crea una sesión de usuario con una instancia de SQL Server después de finalizar el proceso de autenticación de registro pero antes de establecer una sesión de usuario, se produce el evento LOGON. Como resultado, los mensajes de la declaración PRINT y cualquier error generado por el desencadenador serán visibles en el registro de errores de SQL Server. Los errores de autenticación impiden que se utilicen activadores de inicio de sesión. Estos activadores se pueden utilizar para rastrear la actividad de inicio de sesión o establecer un límite en la cantidad de sesiones que un inicio de sesión determinado puede tener para auditar y administrar las sesiones del servidor.

¿Cómo muestra SQL Server el disparador?

El disparador mostrar o lista es útil cuando tenemos muchas bases de datos con muchas tablas. Esta consulta es muy útil cuando los nombres de las tablas son los mismos en varias bases de datos. Podemos ver una lista de todos los activadores disponibles en SQL Server usando el siguiente comando:

Sintaxis:

DESDE sys.triggers, SELECCIONE el nombre, is_instead_of_trigger
tipo SI = 'TR';

SQL Server Management Studio hace que sea muy sencillo mostrar o enumerar todos los activadores que están disponibles para una tabla determinada. Los siguientes pasos nos ayudarán a lograr esto:

Ve a la Bases de datos menú, seleccione la base de datos deseada y luego expándala.

  • Selecciona el Mesas menú y expandirlo.
  • Seleccione cualquier tabla específica y expándala.

Aquí obtendremos varias opciones. Cuando elegimos el Desencadenantes , muestra todos los activadores disponibles en esta tabla.

ANTES y DESPUÉS del disparo

ANTES de que los desencadenadores ejecuten la acción desencadenante antes de que se ejecute la declaración desencadenante. DESPUÉS de que los desencadenadores ejecuten la acción desencadenante después de que se ejecute la declaración desencadenante.

Ejemplo
Dada la base de datos de informes de estudiantes, en la que se registra la evaluación de las calificaciones de los estudiantes. En dicho esquema, cree un activador para que el total y el porcentaje de marcas especificadas se inserten automáticamente cada vez que se inserte un registro.

Aquí, se invocará un disparador antes de que se inserte el registro para que se pueda usar la etiqueta ANTES.

Supongamos el esquema de la base de datos.

Consulta

mysql>>desc Estudiante;>

Activador SQL para el enunciado del problema.

img2

La declaración SQL anterior creará un activador en la base de datos de los estudiantes en el que cada vez que se ingresan las calificaciones de las materias, antes de insertar estos datos en la base de datos, el activador calculará esos dos valores y los insertará con los valores ingresados. es decir.

Producción

img3

De esta forma, se pueden crear y ejecutar disparadores en las bases de datos.

Ventaja de los desencadenantes

Los beneficios de usar desencadenadores en SQL Server incluyen los siguientes:

natasha dalal
  1. Las reglas de los objetos de la base de datos se establecen mediante activadores, que hacen que los cambios se deshagan si no se cumplen.
  2. El activador examinará los datos y, si es necesario, realizará cambios.
  3. Podemos hacer cumplir la integridad de los datos gracias a los activadores.
  4. Los datos se validan mediante activadores antes de insertarlos o actualizarlos.
  5. Los activadores nos ayudan a mantener un registro de registros.
  6. Debido al hecho de que no es necesario compilarlos cada vez que se ejecutan, los desencadenadores mejoran el rendimiento de las consultas SQL.
  7. El código del lado del cliente se reduce mediante activadores, lo que ahorra tiempo y mano de obra.
  8. El mantenimiento del gatillo es simple.

Desventaja de desencadenantes

Las desventajas de utilizar desencadenadores en SQL Server incluyen las siguientes:

  1. Sólo los activadores permiten el uso de validaciones extendidas.
  2. Se utilizan disparadores automáticos y el usuario no sabe cuándo se están ejecutando. En consecuencia, es difícil solucionar los problemas que surgen en la capa de base de datos.
  3. La sobrecarga del servidor de la base de datos puede aumentar como resultado de los desencadenantes.
  4. En una única instrucción CREATE TRIGGER, podemos especificar la misma acción desencadenante para múltiples acciones de usuario, como INSERTAR y ACTUALIZAR.
  5. Solo la base de datos actual está disponible para crear activadores, pero aún pueden hacer referencias a objetos fuera de la base de datos.

Preguntas frecuentes

P1: ¿Qué es un disparador SQL?

Respuesta:

Un disparador SQL es un objeto de base de datos que está asociado con una tabla y ejecuta automáticamente un conjunto de declaraciones SQL cuando ocurre un evento específico en esa tabla. Los activadores se utilizan para hacer cumplir reglas comerciales, mantener la integridad de los datos y automatizar ciertas acciones dentro de una base de datos. Pueden activarse mediante varios eventos, como insertar, actualizar o eliminar datos en una tabla, y le permiten realizar operaciones adicionales basadas en esos eventos.

P2: ¿Cómo funcionan los activadores de SQL?

Respuesta:

Los desencadenadores SQL se definen mediante sentencias SQL y están asociados con una tabla específica. Cuando el evento de activación definido (por ejemplo, INSERTAR, ACTUALIZAR, ELIMINAR) ocurre en esa tabla, el código de activación asociado se ejecuta automáticamente. El código de activación puede consistir en declaraciones SQL que pueden manipular datos en la misma tabla o en otras, imponer restricciones o realizar otras acciones. Los desencadenantes se ejecutan dentro del alcance de la transacción y se pueden definir para que se ejecuten antes o después del evento desencadenante.

P3: ¿Cuáles son los beneficios de utilizar activadores SQL?

Respuesta:

Los beneficios de utilizar desencadenadores SQL incluyen:

Integridad de los datos: los activadores le permiten aplicar restricciones y reglas comerciales complejas a nivel de la base de datos, garantizando que los datos sigan siendo consistentes y precisos.

Automatización: los activadores pueden automatizar tareas repetitivas o complejas ejecutando acciones predefinidas cada vez que ocurre un evento específico. Esto reduce la necesidad de intervención manual y mejora la eficiencia.

Seguimientos de auditoría: los activadores se pueden utilizar para rastrear los cambios realizados en los datos, como registrar modificaciones en una tabla de auditoría separada. Esto ayuda a auditar y mantener un historial de cambios de datos.

Validación de datos: los activadores pueden realizar comprobaciones de validación adicionales de los datos antes de insertarlos, actualizarlos o eliminarlos, garantizando que solo se almacenen en la base de datos datos válidos y conformes.