La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

DML Transact SQL Sesión X Triggers. Duración 2 Horas.

Presentaciones similares


Presentación del tema: "DML Transact SQL Sesión X Triggers. Duración 2 Horas."— Transcripción de la presentación:

1 DML Transact SQL Sesión X Triggers

2 Duración 2 Horas

3 Objetivo particular Al finalizar el modulo el participante será capaz de crear los diferentes tipos de triggers básicos que pueden ser usados en una base de datos.

4 Introducción El uso de los procedimientos almacenados desarrollado en la unidad pasada indica que las posibilidades de administración que se pueden tener sobre la base de datos a través del analizador corporativo. Los triggers son una tipo especial de procedimientos almacenados soportado por el SQL Server, en la presente unidad se desarrolla el tema de los desencadenadores.

5 Introducción a los Triggers Objetivo específico: El participante al finalizar, identificará las características de los triggers como desencadenadores de acciones sobre las operaciones de modificación de datos.

6 Introducción a los Triggers El uso de los triggers es empleado cuando se desea realizar una acción específica en las operaciones de inserción, borrado o actualización sobre una tabla en particular.

7 Introducción a los Triggers Un trigger es un muy similar a un procedimiento almacenado, pero no puede ser ejecutado de forma directa, siempre responde a una acción de modificación de datos sobre una tabla.

8 Introducción a los Triggers ¿Por qué usar triggers?  Para reforzar la integridad relacional  Para reforzar las reglas de negocio.

9 Introducción a los Triggers Restricciones  Alter DatabaseCreate Database  Drop DatabaseDisk init  Disk ResizeLoad Database  Load LogReconfigure  Restore Database  Restore Log

10 Creación y mantenimiento de Triggers. Objetivo específico: El participante al concluir el subtema mantendrá triggers básicos sobre una base una base de datos de SQL Server.

11 Creación y mantenimiento de Triggers. Creación de triggers Para crear un trigger se debe emplear la instrucción de SQL CREATE TRIGGER, se debe ser miembro del rol de administradores, dueño de la base de datos. Un trigger puede ser creado, alterado o borrado.

12 Creación y mantenimiento de Triggers. CREATE TRIGGER ON [WITH ENCRYPTION] {FOR | AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE} AS

13 Creación y mantenimiento de Triggers. Inserción Al momento de realizar una inserción sobre una tabla que tiene definido un INSERT TRIGGER, SQL Server maneja una tabla virtual llamada “inserted” que contiene una copia de la(s) fila(s) insertada(s).

14 Creación y mantenimiento de Triggers. El siguiente ejemplo muestra como al momento de realizar la inserción sobre una tabla se puede usar la tabla lógica “inserted”. Este ejemplo se realiza sobre la base de datos de pubs, en la tabla de jobs. Reportará el registro insertado.

15 Creación y mantenimiento de Triggers. Create trigger t_insjob on jobs for insert as select 'Registro insertado' as notificación select * from inserted

16 Creación y mantenimiento de Triggers. Respetando las restricciones de la tabla la inserción:  insert into jobs values ('psychologist', 120, 250)

17 Creación y mantenimiento de Triggers. Borrado Al momento de realizar un borrado sobre una tabla que tiene definido un DELETE TRIGGER, SQL Server maneja una tabla virtual llamada “deleted” que contiene una copia de la(s) fila(s) eliminada(s).

18 Creación y mantenimiento de Triggers. El siguiente ejemplo muestra como al momento de realizar una eliminación sobre una tabla se puede usar la tabla lógica “deleted”. Este ejemplo se realiza sobre la base de datos de pubs, en la tabla de jobs. Reportará el registro eliminado.

19 Creación y mantenimiento de Triggers. create trigger t_deljob on jobs for delete as select 'registro eliminado' as notificación select * from deleted

20 Creación y mantenimiento de Triggers. Respetando las restricciones de la tabla la eliminación:  delete from jobs where job_desc='psychologist'

21 Creación y mantenimiento de Triggers. Actualización Al momento de realizar una actualización sobre una tabla que tiene definido un UPDATE TRIGGER, SQL Server maneja la actualización con las tablas lógicas “deleted” e “inserted” para almacenar las filas antes y después de la modificación.

22 Creación y mantenimiento de Triggers. El siguiente ejemplo muestra como al momento de realizar una actualización sobre una tabla se pueden usar las tablas lógicas. Este ejemplo se realiza sobre la base de datos de pubs, en la tabla de titles. Reportará los cambios realizados.

23 Creación y mantenimiento de Triggers. Create trigger t_uptit on titles for update as select * from deleted select * from inserted

24 Creación y mantenimiento de Triggers. Respetando las restricciones de la tabla la actualización:  update titles set price = price * 1.15 where price between 19.00 and 20.00

25 Creación y mantenimiento de Triggers. IF UPDATE ( ) Se puede preguntar de forma directa si algún atributo esta siendo modificado, para ello basta con usar la función UPDATE() que retornará un valor Falso o Verdadero.

26 Creación y mantenimiento de Triggers. El siguiente ejemplo muestra como al momento de realizar una actualización sobre una tabla se puede usar la función update(). Este ejemplo se realiza sobre la base de datos de pubs, en la tabla de titles. Reportará que no se puede modificar el atributo price.

27 Creación y mantenimiento de Triggers. alter trigger t_uptit on titles for update as if update(price) begin print 'you can´t modify the title price' Rollback transaction end

28 Creación y mantenimiento de Triggers. Respetando las restricciones de la tabla la actualización:  update titles set price = price * 1.15 where price between 19.00 and 20.00

29 Creación y mantenimiento de Triggers. INSTEAD OF Se pueden crear Instead of triggers con lo que SQL Server ignora cualquier acción y realiza únicamente lo que se le indica en el disparador. Se puede crear un Instead of tanto para inserción como para actualización o borrado

30 Creación y mantenimiento de Triggers. INSTEAD OF Una vez existente un trigger del tipo Instead of se ignoran a los tipo After o For.

31 Creación y mantenimiento de Triggers. El siguiente ejemplo muestra como al momento de realizar una inserción sobre una tabla se puede bloquear la acción e indicar que no se permite tal operación.

32 Creación y mantenimiento de Triggers. Create trigger t_institles on titles instead of insert as select 'You cannot insert information in this table' as Error select * from inserted

33 Creación y mantenimiento de Triggers. Respetando las restricciones de la tabla la inserción:  insert into titles values ('BU9865','The power of the brain','psychologic', 1389, 25.26, 5000.000, 10,4095,null,'Sep 22, 2000')

34 Creación y mantenimiento de Triggers. Existe una serie de instrucciones que permite el modificar, borrar o temporalmente deshabilitar un trigger. Alter Trigger -- Modifica Drop Trigger -- Elimina

35 Creación y mantenimiento de Triggers. Deshabilitando un trigger Alter Table Disable Trigger {all | } Habilitando un trigger Alter Table Enable Trigger {all | }

36 Conclusión Uno de los objetos más complejos de la base de datos son junto con los procedimientos almacenados son los triggers, su desarrollo y comprensión requieren de tiempo y facilidad de programación en la mayoría de los casos, esta unidad permitió al usuario comprender su manejo y utilización básica.


Descargar ppt "DML Transact SQL Sesión X Triggers. Duración 2 Horas."

Presentaciones similares


Anuncios Google