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:

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


Triggers (Disparadores) Sql Server - Bases de Datos en Microsoft Sql Server 2014 (33-35) Reviewed by IncanatoIt-ad on 10:56 Rating: 5

No hay comentarios:

Todos los derechos reservados www.IncanatoIT.com - Desarrollando Software © 2014 - 2019
Desarrollado por Blogger, Designed by Sweetheme
IncanatoIt.com. Con la tecnología de Blogger.
y>