CREATE TABLE [dbo].[{0}EventLogs](
[EventLogID] [int] IDENTITY(1,1) NOT NULL,
[LevelID] [int] NOT NULL,
[Message] [varchar](max) NULL,
[OperationID] [int] NOT NULL,
[StackTrace] [varchar](max) NULL,
[Exception] [varchar](max) NULL,
CONSTRAINT [PK_{0}EventLogs] PRIMARY KEY CLUSTERED
(
[EventLogID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[{0}Levels](
[LevelID] [int] IDENTITY(1,1) NOT NULL,
[Description] [varchar](255) NOT NULL,
CONSTRAINT [PK_{0}Levels] PRIMARY KEY CLUSTERED
(
[LevelID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[{0}ObjectLogDetails](
[ObjectLogDetailID] [int] IDENTITY(1,1) NOT NULL,
[ObjectLogID] [int] NOT NULL,
[OperationID] [int] NOT NULL,
[LevelID] [int] NOT NULL,
[PropertyName] [varchar](255) NOT NULL,
[PropertyValue] [varchar](max) NULL,
[PropertyType] [varchar](255) NULL,
CONSTRAINT [PK_{0}ObjectLogDetails] PRIMARY KEY CLUSTERED
(
[ObjectLogDetailID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[{0}ObjectLogs](
[ObjectLogID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](255) NOT NULL,
[ObjectType] [varchar](max) NOT NULL,
CONSTRAINT [PK_{0}ObjectLogs] PRIMARY KEY CLUSTERED
(
[ObjectLogID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[{0}Operations](
[OperaionID] [int] IDENTITY(1,1) NOT NULL,
[User] [varchar](255) NULL,
[TimeStamp] [datetime] NOT NULL,
[KeyValue] [varchar](255) NULL,
CONSTRAINT [PK_{0}Operations] PRIMARY KEY CLUSTERED
(
[OperaionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[{0}EventLogs] WITH CHECK ADD CONSTRAINT [FK_{0}EventLogs_{0}Levels] FOREIGN KEY([LevelID])
REFERENCES [dbo].[{0}Levels] ([LevelID])
ALTER TABLE [dbo].[{0}EventLogs] CHECK CONSTRAINT [FK_{0}EventLogs_{0}Levels]
ALTER TABLE [dbo].[{0}EventLogs] WITH CHECK ADD CONSTRAINT [FK_{0}EventLogs_{0}Operations] FOREIGN KEY([OperationID])
REFERENCES [dbo].[{0}Operations] ([OperaionID])
ALTER TABLE [dbo].[{0}EventLogs] CHECK CONSTRAINT [FK_{0}EventLogs_{0}Operations]
ALTER TABLE [dbo].[{0}ObjectLogDetails] WITH CHECK ADD CONSTRAINT [FK_{0}ObjectLogDetails_{0}Levels] FOREIGN KEY([LevelID])
REFERENCES [dbo].[{0}Levels] ([LevelID])
ALTER TABLE [dbo].[{0}ObjectLogDetails] CHECK CONSTRAINT [FK_{0}ObjectLogDetails_{0}Levels]
ALTER TABLE [dbo].[{0}ObjectLogDetails] WITH CHECK ADD CONSTRAINT [FK_{0}ObjectLogDetails_{0}ObjectLogs] FOREIGN KEY([ObjectLogID])
REFERENCES [dbo].[{0}ObjectLogs] ([ObjectLogID])
ALTER TABLE [dbo].[{0}ObjectLogDetails] CHECK CONSTRAINT [FK_{0}ObjectLogDetails_{0}ObjectLogs]
ALTER TABLE [dbo].[{0}ObjectLogDetails] WITH CHECK ADD CONSTRAINT [FK_{0}ObjectLogDetails_{0}Operations] FOREIGN KEY([OperationID])
REFERENCES [dbo].[{0}Operations] ([OperaionID])
ALTER TABLE [dbo].[{0}ObjectLogDetails] CHECK CONSTRAINT [FK_{0}ObjectLogDetails_{0}Operations]