SQL Trigger o Desencadenadores

Un disparador, también llamado en SQL Trigger, le permite ejecutar un conjunto de sentencias SQL justo después de un evento. Esto facilita y automatiza acciones para manejar una base de datos.

Los disparadores de SQL Server se utilizan para ejecutar después o antes de una operación INSERTAR, ELIMINAR o ACTUALIZAR en una tabla. Puede usar estos disparadores en Vistas o Tablas para realizar cualquiera de las actividades especificadas anteriormente. Recuerde, puede asociar en SQL Trigger a una sola tabla solamente.

Sintaxis de SQL Trigger o Desencadenadores

La declaración CREATE TRIGGER sql server le permite crear un nuevo activador que se ejecuta automáticamente cada vez que ocurre un evento como INSERT, DELETE o UPDATE en una tabla. A continuación, la sintaxis:

CREATE TRIGGER [Schema_Name].Trig_Nombre
ON tabla_nambre 
AFTER INSERT | UPDATE | DELETE
AS
   BEGIN
 -- Extractos
 -- Insertar, actualizar o eliminar extractos 
END

En esta sintaxis:

  • schema_name: esquema al que pertenece el nuevo disparador. El nombre del esquema es opcional.
  •  trigger_name: definido por el usuario para el nuevo disparador.
  • tabla_nambre: es la tabla a la que se aplica el disparador.
  • El evento se enumera en la cláusula AFTER. El evento podría ser INSERT, UPDATE o DELETE. Un solo disparador puede activarse en respuesta a una o más acciones contra la tabla.

Crear trigger en SQL Server

Podemos crear trigger SQL server de dos formas. En este ejemplo, le mostramos los pasos necesarios para crearlo utilizando Management Studio (SSMS). Antes de comenzar a generar alguno, veamos si nuestra base de datos tiene alguno existente o no.

Para ver un desencadenador existente, seleccione el objeto Base de datos -> Expanda el Nombre de tabla especificado (en el que existe) -> Vaya a la Carpeta de desencadenadores y expándalo. En la siguiente captura de pantalla, puede observar que nuestra tabla de cliente en la base de datos no tiene ninguno.

sql trigger

Al dar clic derecho en la carpeta, se abrirá el menú contextual. Seleccione la opción Nuevo, puede ver que del lado de la consulta se crea el código del trigger SQL, como se muestra a continuación.

sql trigger

Ejemplo para crear un trigger a través de consultas SQL

La consulta a continuación es un ejemplo concreto de una consulta SQL para crear un desencadenador o trigger SQL

create trigger insertt
on cliente
after insert
as
begin
select * from Cliente

end

sql trigger con consultas

Modificar un desencadenador o trigger en SQL Server

Los siguientes ejemplos le ayudarán a comprender los pasos necesarios para modificar en SQL trigger  existente mediante Management Studio y la consulta. Antes de entrar en la modificación, permítame mostrarle las opciones disponibles que proporciona Management Studio. Como mostramos a continuación, puede modificarlo y tiene otras opciones a través del menú contextual.

modificar trigger sql 

Eliminar desencadenadores en SQL Server

Si quiere borrar en SQL trigger a través del SSMS, presiona el clic en la carpeta desencadenadores y luego clic derecho en el nombre que desea borrar, para abrir el menú contextual. Luego un ultimo clic en Eliminar en el menú contextual. son los mismos pasos que realizamos en la imagen anterior, pero marcando eliminar

Ventajas de los disparadores en SQL

  • Usando trigger SQL, puede eliminar el uso de programadores en su mayoría. Los programadores son aplicaciones que siguen ejecutándose en segundo plano y ayudan a ejecutar una tarea en un momento específico. 
  • Estos son útiles para tener controles de seguridad adicionales. 
  • Se puede eliminar el riesgo de insertar datos no válidos en una columna comprobando esa columna o realizando una simple actualización. 
  • Estos son útiles en las actividades de limpieza, ya que podemos ejecutar algunos procedimientos de limpieza al escuchar eventos de eliminación.

Desventajas de los disparadores en SQL

  • Estos son difíciles de solucionar porque se ejecutan automáticamente y el registro incorrecto dará como resultado actualizaciones desconocidas, lo que podría llevar mucho tiempo para depurar en proyectos a gran escala.
  • En SQL trigger o disparadores aumentan la sobrecarga de las consultas DML de la base de datos. Dado que para cada fila que insertamos, actualizamos o eliminamos, puede hacer una actualización o una inserción, por ejemplo, en una nueva tabla, o incluso una eliminación de fila más completa que podría no ser necesaria en este momento.
  • Solo se puede realizar una validación limitada en disparadores como comprobaciones no nulas, comprobaciones de igualdad, comprobaciones únicas, etc. Aunque podemos usar disparadores para manejar la mayoría de nuestros casos de uso comercial, no brinda una solución de prueba completa para cada caso. 

Conclusión

  • En este artículo, analizamos qué disparadores hay en SQL y cómo podemos crear un disparador.
  • Pasamos por ejemplos que representaba el uso en sql trigger o disparadores en las tablas de la base de datos.
  • Además, discutimos las ventajas y desventajas de usar disparadores o trigger SQL.
  • Los disparadores también son una excelente manera de manejar validaciones y comprobaciones antes de cualquier operación.
  • Dado que esto podría generar una sobrecarga desconocida, se debe tener cuidado con la cantidad de filas afectadas por el disparador.

Deja un comentario