Un trigger es un desencadenador que se ejecuta automáticamente cuando se produce un
evento sobre una tabla. 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 que se aplican a una tabla o
vista.
Ejemplo 1: Crear un trigger que no
permita ingresar un precio negativo en la tabla Producto.
Create trigger
TR_Inserta_Pro
On Producto FOR Insert
As
-- La tabla (temporal) inserted contiene los datos que se van a ingresar
If (select pre_pro from inserted)<0
Begin
Print
'Precio Negativo'
Rollback --Anula la transacción Insert
End
Ejemplo 2: Crear un trigger que inserte un registro en la tabla
auditoría en el caso que se cambie el valor del precio de un Producto.
Create table auditoria
(id_auditoria int identity(1,1) not null primary key,
fecha_auditoria date not null,
id_pro int not null,
pre_nuevo decimal(7,2) not null,
usuario varchar(20) not null)
-- Creación de trigger TR_Actualiza_Pro.
Create trigger TR_Actualiza_Pro
On Producto FOR Update
As
Declare @id int
Declare @nuevopre decimal(7,2)
Select @nuevopre=pre_pro from Inserted
Insert into auditoria values (CONVERT (date, GETDATE()),5,@nuevopre, user)
--Probamos el trigger, modificamos el precio de un producto.
Update Producto set pre_pro =1.5 where id_pro=5
No hay comentarios.:
Publicar un comentario