jueves, 4 de agosto de 2022

9.TRIGGERS

 

 Triggers en Transact SQL



SQL Server proporciona dos tipos de triggers:

Trigger DML:

se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML).

Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista.

Trigger DDL:

se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos (DDL). Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP de Transact-SQL, y a determinados procedimientos almacenados del sistema que ejecutan operaciones de tipo DOL.

Trigger DML

Los trigger OML se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista.

La sintaxis general de un trigger es la siguiente:

Las instrucciones de triggers DML utilizan dos tablas especiales denominadas inserted y deleted. SQL Server crea y administra automáticamente ambas tablas. La estructura de las tablas inserted y deleted es la misma que tiene la tabla que ha desencadenado la ejecución del trigger.

La primera tabla (inserted) solo está disponible en las operaciones lNSERT y UPDATE y en ella están los valores resultantes después de la inserción o actualización. Es decir, los datos insertados. lnserted estará vacía en una operación DELETE.    

En la segunda (deleted), disponible en las operaciones UPDATE y DELETE, están los valores anteriores a la ejecución de la actualización o borrado. Es decir, los datos que serán borrados. Deleted estará vacía en una operación INSERT.

¿No existe una tabla UPDATED?

No, hacer una actualización es lo mismo que borrar(deleted)e insertarlos nuevos (inserted ). La sentencia UPDATE es la única en la que inserted y deleted tienen datos simultáneamente.

No se puede modificar directamente los datos de estas tablas.

El siguiente ejemplo graba un histórico de saldos

Una consideración a tener en cuenta es que el trigger se ejecutará aunque la instrucción DML (UPDATE, INSERT o DELETE) no haya afectado a ninguna fila. En este caso inserted y deleted devolverán un conjunto de datos vacío.

TriggerDDL

Los trigger DDL se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos CDOL). Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP de T-SQL, y a determinados procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL.

La sintaxis general de un trigger es la siguiente:





No hay comentarios:

Publicar un comentario

10. ARQUITECTURA DE SQL SERVER

   10. ARQUITECTURA DE SQL SERVER Los componentes de SQL se dividen en dos amplios grupos: el motor relacional y las utilidades externas. SQ...