Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VALLE DE OAXACA
Integrantes:
Calvo Cruz Axel Jesús
Orozco Vásquez Marco Antonio
Pérez Pacheco Francisco Usiel
Rodríguez Cortes Brenda Soledad.
6° A Ingeniería informática
Por último verificamos que se haya agregado el nuevo ticket, para esto se
realizó una consulta y efectivamente se observan los cambios.
D I S P A R A D O R E S.
Un Trigger, también llamado Disparador, en una base de datos, es un
procedimiento que se ejecuta cuando se cumple una condición
establecida.
Depende de la base de datos, los Triggers pueden ser antes o después de
ejecutar un INSERT, UPDATE o DELETE.
Un Trigger funciona tanto al insertar, actualizar o borrar datos en una base
de datos o incluso al crear o editar usuarios. Son usados para mejorar la
administración de la Base de Datos, sin necesidad de que el usuario ejecute
esas sentencias SQL.
/*U p d a t e*/
Update Marca
set Marca ='Eagle Warrior'
where Marca = 'Eagle'
Update Articulos
set Cantidad = 15
where Cantidad = 10
Update Persona
set Nombre = 'Axel',correo= 'axelperezp21@gmail.com'
where Nombre = 'Juan'
/* D e l e t e*/
SELECT DIFFERENCE('Acer','Jorge');
SELECT DIFFERENCE('Teclado','Mouse');
SELECT DIFFERENCE('Jorge','Juan');
SELECT DIFFERENCE('Bugambilias','Insurgentes');
SELECT DIFFERENCE('Dt002','Dt003');
/* Consulta con Minus */
/*t r a n s a c c i o n e s*/
BEGIN transaction
DELETE FROM Articulos
where IdArticulo = 1
ROLLBACK
BEGIN transaction
DELETE FROM Marca, Articulos, Modelo
Where IdMarca= 'Ma001'
COMMIT
BEGIN TRY
BEGIN TRANSACTION
UPDATE DetalleTicket SET Cantidad = Cantidad + 3 WHERE IdDetalleTicket=
'Dt001'
UPDATE DetalleTicket SET Cantidad = Cantidad -2 WHERE IdDetalleTicket=
'Dt002'
COMMIT TRANSACTION
PRINT 'Transaccion completa'
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
PRINT 'Transaccion cancelada'
END CATCH
/*Segunda transacción*/
BEGIN TRY
BEGIN TRANSACTION
UPDATE Articulos SET Precio = Precio + 50 WHERE IdArticulo= 'Art001'
UPDATE Articulos SET Cantidad = Cantidad +10 WHERE IdArticulo= 'Art002'
COMMIT TRANSACTION
PRINT 'Transaccion completa'
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
PRINT 'Transaccion cancelada'
END CATCH
/*Transaccion cancelada*/
BEGIN TRY
BEGIN TRANSACTION
UPDATE DetalleTicket SET PrecioVenta = PrecioVenta + 30 WHERE
IdDetalleTicket= 'Dt001'
UPDATE DetalleTicket SET PrecioVenta = PrecioVenta -300 WHERE
IdDetalleTicket= 'Dt003'
COMMIT TRANSACTION
PRINT 'Transaccion completa'
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
PRINT 'Transaccion cancelada'
END CATCH
/* P R O C E D I M I E N T O S*/
CREATE PROCEDURE SP_SumarCantidad
@IdDetalleTicket as Varchar(5),
@Cantidad as int
AS
UPDATE DetalleTicket
SET Cantidad=Cantidad+@Cantidad
WHERE IdDetalleTicket=@IdDetalleTicket
/*Segundo procedimiento*/
CREATE PROCEDURE SP_SumarPrecio
@IdArticulo as Varchar(6),
@Precio as int
AS
UPDATE Articulos
SET Precio=Precio+@Precio
WHERE IdArticulo=@IdArticulo
/* D I S PA R A D O R E S*/
CREATE TRIGGER Tr_pais
on Pais for insert
AS
set nocount on--muestra los mensejes en una fila afectada
declare @IdPais varchar(5)
select @IdPais = IdPais from inserted
insert into Historial_Paises values(GETDATE(),@IdPais,'Pais agregado',SYSTEM_USER)
go
CREATE TRIGGER TR_EliminarPais
on Pais instead of delete
as
begin
set nocount on;
insert into Historial_Paises(Fecha,IdPais,Accion,Usuario)
Select GETDATE(),IdPais,'Elimino un pais',SYSTEM_USER
from deleted
end
DELETE FROM Persona
CREATE TRIGGER TR_EliminarPersonas
on Persona instead of delete
as
begin
set nocount on;
insert into Historial_Personas(Fecha,IdPersona,Accion,Usuario)
Select GETDATE(),IdPersona,'Persona eliminada',SYSTEM_USER
from deleted
end
select * from Historial_Personas
select * from Persona
select * from Historial_Paises
select * from Pais
CREATE TRIGGER TR_EliminarSupervisores
on Supervisor instead of delete
as
begin
set nocount on;
insert into Historial_Supervisor(Fecha,IdSupervisor,Accion,Usuario)
Select GETDATE(),IdSupervisor,'Supervisor eliminado',SYSTEM_USER
from deleted
end
CREATE TABLE Historial_Paises
(Fecha datetime,
IdPais Varchar(6),
Accion varchar(80),
Usuario varchar(80));
/* Consulta elaborada */