/****** Object: Table [dbo].[Diagnostics] Script Date: 02/21/2010 17:42:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Diagnostics](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Date] [datetime] NOT NULL,
[Category] [varchar](50) NULL,
[Severity] [int] NOT NULL,
[Process] [varchar](50) NULL,
[User] [varchar](50) NULL,
[Machine] [varchar](50) NULL,
[Message] [varchar](max) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
CREATE NONCLUSTERED INDEX [IX_Diagnostics_Date] ON [dbo].[Diagnostics]
(
[Date] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
/****** Object: StoredProcedure [dbo].[Diagnostics_Insert] Script Date: 02/21/2010 17:42:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Diagnostics_Insert]
(
@Date datetime,
@Category varchar(50),
@Severity int,
@Process varchar(50),
@User varchar(50),
@Machine varchar(50),
@message varchar(max)
)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO Diagnostics
(Date, Category, Severity, Process, [User], Machine, Message)
VALUES
(@Date, @Category, @Severity, @Process, @User, @Machine, @Message)
END
GO
/****** Object: StoredProcedure [dbo].[Diagnostics_Get] Script Date: 02/21/2010 17:42:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Diagnostics_Get]
(
@StartDate DATETIME,
@EndDate DATETIME,
@Machine varchar(50) = null,
@Message varchar(50) = null,
@MinSeverity int = null,
@Process varchar(50) = null,
@MaxRecords int = 10000
)
AS
BEGIN
SET NOCOUNT ON
IF @MaxRecords IS NOT NULL
Set RowCount @MaxRecords
SELECT
Date,
Category,
Severity,
Process,
[User],
Machine,
Message
FROM
Diagnostics
WHERE
Date BETWEEN @StartDate and @EndDate
AND (@Machine is null or Machine = @Machine)
AND (@MinSeverity is null or Severity >= @MinSeverity)
AND (@Process is null or Process = @Process)
AND (@Message is null or Message like @Message)
END
GO