Triggers de Eventos
Natalia Vargas Reyes (1 hora 30 mins) de 1:10 pm a 2:40 pm
Se crearon 4 triggers, tanto para beneficiarios como para Cuentas Objetivo, estos triggers insertan en la tabla de eventos dependiendo si es un insert o un update.
-- =========================================================================
-- Natalia Vargas Reyes
-- Trigger para insertar evento si inserta una CO
-- =========================================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER TR_CuentaObjetivo_AI
ON [dbo].[CuentaObjetivo]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @xml xml;
SET @xml = ' ';
INSERT INTO [dbo].[Evento](
[IdTipoEvento]
,[IdUser]
,[Ip]
,[Fecha]
,[XMLAntes]
,[XMLDespues]
)
VALUES (
1
,1 --De dónde me saco el id de usuario?
,NEWID()
,GETDATE()
,@xml
,(SELECT
ICO.Id
,ICO.IdCuentaAhorrro
,ICO.FechaInicio
,ICO.FechaFinal
,ICO.Cuota
,ICO.Objetivo
,ICO.Saldo
,ICO.InteresAcumulado
,ICO.Activa
,ICO.InsertAt
,ICO.UpdateAt
,ICO.InsertBy
,ICO.UpdateBy
,ICO.InsertIn
,ICO.UpdateIn
FROM inserted AS ICO
FOR XML AUTO)
)
SET NOCOUNT ON;
END
Y para el update
-- ========================================================================================
-- Natalia Vargas Reyes
-- Trigger para insertar evento cuando se modifique una CO
-- ========================================================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Means at update
ALTER TRIGGER TR_CuentaObjetivo_AU
ON [dbo].[CuentaObjetivo]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @isActivo BIT;
SELECT @isActivo=ICO.Activa FROM inserted AS ICO;
IF @isActivo = 1
INSERT INTO [dbo].[Evento](
[IdTipoEvento]
,[IdUser]
,[Ip]
,[Fecha]
,[XMLAntes]
,[XMLDespues]
)
VALUES (
2 --Codigo de modificar CO
,1 --De dónde me saco el id de usuario?
,NEWID()
,GETDATE()
,(SELECT
DCO.Id
,DCO.IdCuentaAhorrro
,DCO.FechaInicio
,DCO.FechaFinal
,DCO.Cuota
,DCO.Objetivo
,DCO.Saldo
,DCO.InteresAcumulado
,DCO.Activa
,DCO.InsertAt
,DCO.UpdateAt
,DCO.InsertBy
,DCO.UpdateBy
,DCO.InsertIn
,DCO.UpdateIn
FROM deleted AS DCO
FOR XML AUTO)
,(SELECT
ICO.Id
,ICO.IdCuentaAhorrro
,ICO.FechaInicio
,ICO.FechaFinal
,ICO.Cuota
,ICO.Objetivo
,ICO.Saldo
,ICO.InteresAcumulado
,ICO.Activa
,ICO.InsertAt
,ICO.UpdateAt
,ICO.InsertBy
,ICO.UpdateBy
,ICO.InsertIn
,ICO.UpdateIn
FROM inserted AS ICO
FOR XML AUTO)
)
ELSE
INSERT INTO [dbo].[Evento](
[IdTipoEvento]
,[IdUser]
,[Ip]
,[Fecha]
,[XMLAntes]
,[XMLDespues]
)
VALUES (
3 --Codigo de borrado logico de CO
,1 --De dónde me saco el id de usuario?
,NEWID()
,GETDATE()
,(SELECT
DCO.Id
,DCO.IdCuentaAhorrro
,DCO.FechaInicio
,DCO.FechaFinal
,DCO.Cuota
,DCO.Objetivo
,DCO.Saldo
,DCO.InteresAcumulado
,DCO.Activa
,DCO.InsertAt
,DCO.UpdateAt
,DCO.InsertBy
,DCO.UpdateBy
,DCO.InsertIn
,DCO.UpdateIn
FROM deleted AS DCO
FOR XML AUTO)
,(SELECT
ICO.Id
,ICO.IdCuentaAhorrro
,ICO.FechaInicio
,ICO.FechaFinal
,ICO.Cuota
,ICO.Objetivo
,ICO.Saldo
,ICO.InteresAcumulado
,ICO.Activa
,ICO.InsertAt
,ICO.UpdateAt
,ICO.InsertBy
,ICO.UpdateBy
,ICO.InsertIn
,ICO.UpdateIn
FROM inserted AS ICO
FOR XML AUTO)
)
SET NOCOUNT ON;
END
Comentarios
Publicar un comentario