--****************************
--TRIGGERS********************
--****************************
--1.- COMPROBAR LOS DATOS, VERIFICANDO QUE LA MESA EXISTA AL INSERTAR UNA NUEVA
--COMANDA
CREATE TRIGGER T1
ON PEDIDOS
INSTEAD OF INSERT
AS
BEGIN
PRINT @@ROWCOUNT
IF (EXISTS(SELECT * FROM INSERTED I, MESAS M
WHERE M.ID_MESA=I.ID_MESA))
BEGIN
PRINT 'Adicionando'
INSERT INTO PEDIDOS (ID_COMANDA,OBJ_VERSION,ESTADO_BD,
NRO_PEDIDO,ESTADO,ID_MESA,ID_MESERO)
SELECT ID_COMANDA,OBJ_VERSION,ESTADO_BD,
NRO_PEDIDO,ESTADO,ID_MESA,ID_MESERO FROM INSERTED
END
ELSE
BEGIN
PRINT 'NO EXITE MESA'
ROLLBACK TRAN
END
END
--2.-COMPROBAR LOS DATOS, VERIFICANDO QUE EL CLIENTE ESTE REGISTRADO
--ANTES DE INSERTARLO EN EL CONTRATO
CREATE TRIGGER T2
ON CONTRATOS
INSTEAD OF INSERT
AS
BEGIN
PRINT @@ROWCOUNT
IF(EXISTS (SELECT * FROM CLIENTES C, INSERTED I
WHERE C.ID_CLIENTE = I.ID_CLIENTE))
BEGIN
PRINT 'ADICIONANDO'
INSERT INTO CONTRATOS ( ID_CONTRATO,OBJ_VERSION,ESTADO_BD,
NRO_CONTRATO, FECHA_PAGO, NRO_PERSONAS, FECHA_EVENTO,
HORA_EVENTO,LUGAR,TIPO_SERVICIO, MONTO_TOTAL,ID_CLIENTE,
ID_TARIFA, ID_ORDEN) SELECT ID_CONTRATO,OBJ_VERSION,ESTADO_BD,
NRO_CONTRATO, FECHA_PAGO, NRO_PERSONAS, FECHA_EVENTO,
HORA_EVENTO,LUGAR,TIPO_SERVICIO, MONTO_TOTAL,ID_CLIENTE,
ID_TARIFA, ID_ORDEN FROM INSERTED
END
ELSE
BEGIN
PRINT 'NO EXISTE CLIENTE!!'
PRINT 'REGISTRE AL NUEVO CLIENTE ANTES DE PROCEDER'
ROLLBACK TRAN
END
END
lunes, 26 de septiembre de 2011
[INF-272] PROYECTO : Triggers
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario