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

Entradas populares de este blog

Corrección SPCierreEstado