USE [syslog]GO/****** Object: Trigger [dbo].[triggi] Script Date: 03/28/2007 13:30:25 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: <Author,,Name>-- Create date: <Create Date,,>-- Description: <Description,,>-- =============================================ALTER TRIGGER [dbo].[triggi] ON [dbo].[SysLogData] AFTER INSERTASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @Msg varchar(600) SELECT @Msg =(SELECT Msg FROM INSERTED) DECLARE @SenderIP varchar(600) SELECT @SenderIP =(SELECT SenderIP FROM INSERTED) DECLARE @SenderPort_S varchar(600) SELECT @SenderPort_S =(SELECT SenderPort_S FROM INSERTED) DECLARE @SenderPort_I int SELECT @SenderPort_I =(SELECT SenderPort_I FROM INSERTED) DECLARE @Priority int SELECT @Priority =(SELECT Priority FROM INSERTED) DECLARE @Severity int SELECT @Severity =(SELECT Severity FROM INSERTED) DECLARE @SeverityDesc varchar(600) SELECT @SeverityDesc =(SELECT SeverityDesc FROM INSERTED) DECLARE @Facility int SELECT @Facility =(SELECT Facility FROM INSERTED) DECLARE @FacilityDesc varchar(600) SELECT @FacilityDesc =(SELECT FacilityDesc FROM INSERTED) DECLARE @RawMsg varchar(600) SELECT @RawMsg =(SELECT RawMsg FROM INSERTED)DECLARE @num_filters intSELECT @num_filters =(SELECT COUNT(*) FROM SysLogRegEx)DECLARE @regex VARCHAR(100)DECLARE @flag VARCHAR(100)DECLARE @Count intSET @Count = 0WHILE @count < @num_filtersBEGIN SELECT @regex = (select * from (select top 1 * from (select top @count regex from SysLogRegEx order by regex asc) as newtbl order by regex desc) as newtbl2 order by regex asc) SELECT @flag = (select * from (select top 1 * from (select top @count flag from SysLogRegEx order by flag asc) as newtbl order by flag desc) as newtbl2 order by flag asc) IF(SELECT Msg FROM INSERTED WHERE Msg LIKE @regex) BEGIN IF(@flag=='drop') print 'ska ta bort' ELSEIF(@flag == 'mail') BEGIN INSERT INTO SysLogData_Mail( Msg, SenderIP, SenderPort_S, SenderPort_I, Priority, Severity, SeverityDesc, Facility, FacilityDesc, RawMsg, ReceivedAt ) VALUES ( @Msg, @SenderIP, @SenderPort_S, @SenderPort_I, @Priority, @Severity, @SeverityDesc, @Facility, @FacilityDesc, @RawMsg, GETDATE()): UPDATE SysLogData SET Flag='mail' Where Msg=@Msg and SenderIP=@Senderip and SenderPort_S=@SenderPort_S and SenderPort_I=@SenderPort_I and Priority=@Priority and Severity=@Severity and SeverityDesc=@SeverityDesc and Facility=@Facility and FacilityDesc=@FacilityDesc and RawMsg=@RawMsg; --and ReceivedAt=@ReceivedAT END ELSE UPDATE SysLogData SET Flag=@flag Where Where Msg=@Msg and SenderIP=@Senderip and SenderPort_S=@SenderPort_S and SenderPort_I=@SenderPort_I and Priority=@Priority and Severity=@Severity and SeverityDesc=@SeverityDesc and Facility=@Facility and FacilityDesc=@FacilityDesc and RawMsg=@RawMsg; --and ReceivedAt=@ReceivedAT end SET @counter = @counter + 1ENDEND