Top Ad unit 728 × 90

Recientes

recent

Triggers (Disparadores) Sql Server - Bases de Datos en Microsoft Sql Server 2014 (33-35)

Buen día amigos de IncanatoIt, continuamos en este curso de base de datos en Microsoft Sql Server 2014, en este artículo trabajaremos con triggers o Disparadores.

Puedes seguir el curso Completo desde:
Puedes descargar el Material del Curso desde:

Archivos del Curso, Backup y Presentaciones  http://adf.ly/pl1Bk

Programación Transact SQL

Scripts
Procedimientos Almacenados
Funciones
Triggers

Triggers

Un trigger (disparador) en una base de datos es un procedimiento que se ejecuta cuando se cumple una determinada condición al realizar una operación.
Dependiendo la base de Datos, los triggers pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).

Tipos de Triggers

Tenemos dos tipos de triggers:

  • Triggers DML.
  • Triggers DDL.

Triggers - Sintáxis

Create Trigger Nombre_Trigger 
ON [Table | View] 
FOR | AFTER | INSTEAD OF
[INSERT] [,] [UPDATE] [,] [DELETE]
AS
Sentencia SQL


Ejemplos:

Ejemplo 1:
Implementar un Trigger que permita mostrar un mensaje cada vez que se inserte o actualice un registro en la tabla pasajero.

Tabla Pasajero




--Implementamos nuestro trigger

CREATE TRIGGER trmensaje_pasajero

ON pasajero --Tabla donde se ejecuta el desencadenador

--El desencadenador se activará cuando

--las operaciones Insert y Update son correctas
FOR INSERT, UPDATE
AS
     --Instrucciones del desencadenador
     PRINT 'Pasajero actualizado correctamente'
go

--Probar nuestro trigger
update pasajero set nombre='Jcarlos'
where num_documento='47715777'
go


Ejemplo 2:
Implementar un trigger que permita crear una replica de los registros insertados en la tabla avion para dicho proceso implementar una nueva tabla llamada avionBAK con las mismas columnas de la tabla avion.


Tabla Avión





--Evaluamos si ya existe la tabla avionBAK

if object_id('avionBAK') is not null

begin

     drop table avionBAK

end

go
--Creamos la tabla pasajeroBAK
CREATE TABLE avionBAK
(idavion char(5) not null primary key,
idaerolinea int not null,
fabricante varchar(40) null,
tipo varchar(30) not null,
capacidad int not null
)
go

--Evaluamos si ya existe el trigger y si ya existe
--lo eliminaos para implementarlo de nuevo
if object_id('replicaavion') is not null
begin
     drop trigger replicaavion
end
go
--Implementamos el trigger que replicará los registros
--de la tabla avión

create trigger replicaavion
on avion
AFTER INSERT
AS
BEGIN
     INSERT avionBAK select * from inserted
END
GO

--Probar nuestro trigger
insert into avion values (4,1,'CHAirport','Comercial',250)





Ejemplo 3:
Implementar un trigger que permita controlar el registro de un pago, se deberá evaluar que el monto a registrar sea mayor que cero en la columna monto de la tabla pago.


Tabla Pago






--Evaluamos si ya existe nuestro trigger

--si ya existe lo eliminamos para implementarlo

--nuevamente

If object_id('validapago') is not null

begin

     drop trigger validapago
end
go
--Creamos nuestro trigger
CREATE TRIGGER validapago
ON pago
--El desencadenador se activará cuando
--la operación Insert sea correcta
FOR INSERT
--Instrucciones del desencadenador
AS
     IF (select monto from inserted)<=0
     BEGIN
           ROLLBACK TRANSACTION
           PRINT 'No puede registrar monto Cero'
     END
     ELSE
           PRINT 'Pago registrado correctamente'
GO

--Probamos la implementación de nuestro trigger
insert into pago (idreserva,fecha,idpasajero,monto,tipo_comprobante,
num_comprobante,impuesto) values(1,'2015-09-12','P0000007',0,'Factura',
'0001-00015',0.18)



Triggers (Disparadores) (33-35) Bases de Datos en Microsoft Sql Server 2014


Saludos Imperio, un abrazo a la distancia!.
Triggers (Disparadores) Sql Server - Bases de Datos en Microsoft Sql Server 2014 (33-35) Reviewed by Juan Carlos Arcila Díaz on 10:56 Rating: 5

No hay comentarios:

All Rights Reserved by www.IncanatoIT.com - Desarrollando Software © 2014 - 2015
Powered By Blogger, Designed by Sweetheme

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

IncanatoIt.com. Con la tecnología de Blogger.