mirror of
https://github.com/iscmt/event-parser.git
synced 2026-04-04 14:02:24 -04:00
106 lines
4.1 KiB
Transact-SQL
Executable File
106 lines
4.1 KiB
Transact-SQL
Executable File
/****** Object: StoredProcedure [dbo].[ImportLogs] Script Date: 19/07/2019 06:14:23 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
|
|
CREATE PROCEDURE [dbo].[ImportLogs] @filepath NVARCHAR(500),
|
|
@bulkinsert NVARCHAR(2000)
|
|
AS
|
|
IF Object_id('event_logs') IS NOT NULL
|
|
BEGIN
|
|
-- The bulk insert command must be built as a string because the filepath of the CSV file cannot be passed as a paramter.
|
|
-- https://stackoverflow.com/questions/15671971/syntax-error-when-defining-a-parameter-for-bulk-insert
|
|
SET @bulkinsert = N'BULK INSERT event_logs FROM '''
|
|
+ @filepath
|
|
+
|
|
N''' WITH (FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')'
|
|
EXEC sp_executesql @bulkinsert
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
/****** Object: Table [dbo].[event_logs] Script Date: 19/07/2019 05:57:04 ******/
|
|
SET ansi_nulls ON
|
|
SET quoted_identifier ON
|
|
|
|
CREATE TABLE [dbo].[event_logs]
|
|
(
|
|
[guid] [VARCHAR](100) NOT NULL,
|
|
[level] [VARCHAR](100) NULL,
|
|
[date_and_time] [VARCHAR](100) NULL,
|
|
[source] [VARCHAR](100) NULL,
|
|
[event_id] [SMALLINT] NULL,
|
|
[task_category] [VARCHAR](100) NULL,
|
|
[extracted_account_name] [VARCHAR](100) NOT NULL,
|
|
CONSTRAINT [PK_event_logs] PRIMARY KEY CLUSTERED ( [guid] ASC )
|
|
WITH (
|
|
pad_index = OFF, statistics_norecompute = OFF, ignore_dup_key =
|
|
OFF,
|
|
allow_row_locks = on, allow_page_locks = on) ON [PRIMARY]
|
|
)
|
|
ON [PRIMARY]
|
|
|
|
SET ansi_padding ON
|
|
|
|
/****** Object: Index [IX_date_and_time] Script Date: 19/07/2019 05:57:04 ******/
|
|
CREATE NONCLUSTERED INDEX [IX_date_and_time]
|
|
ON [dbo].[event_logs] ( [date_and_time] ASC )
|
|
WITH (pad_index = OFF, statistics_norecompute = OFF, sort_in_tempdb
|
|
=
|
|
OFF,
|
|
drop_existing = OFF, online = OFF, allow_row_locks = ON,
|
|
allow_page_locks
|
|
=
|
|
ON) ON [PRIMARY]
|
|
|
|
/****** Object: Index [IX_event_id] Script Date: 19/07/2019 05:57:04 ******/
|
|
CREATE NONCLUSTERED INDEX [IX_event_id]
|
|
ON [dbo].[event_logs] ( [event_id] ASC )
|
|
WITH (pad_index = OFF, statistics_norecompute = OFF, sort_in_tempdb
|
|
=
|
|
OFF,
|
|
drop_existing = OFF, online = OFF, allow_row_locks = ON,
|
|
allow_page_locks
|
|
=
|
|
ON) ON [PRIMARY]
|
|
|
|
SET ansi_padding ON
|
|
|
|
/****** Object: Index [IX_extracted_account_name] Script Date: 19/07/2019 05:57:04 ******/
|
|
CREATE NONCLUSTERED INDEX [IX_extracted_account_name]
|
|
ON [dbo].[event_logs] ( [extracted_account_name] ASC )
|
|
WITH (pad_index = OFF, statistics_norecompute = OFF, sort_in_tempdb
|
|
=
|
|
OFF,
|
|
drop_existing = OFF, online = OFF, allow_row_locks = ON,
|
|
allow_page_locks
|
|
=
|
|
ON) ON [PRIMARY]
|
|
|
|
SET ansi_padding ON
|
|
|
|
/****** Object: Index [IX_task_category] Script Date: 19/07/2019 05:57:04 ******/
|
|
CREATE NONCLUSTERED INDEX [IX_task_category]
|
|
ON [dbo].[event_logs] ( [task_category] ASC )
|
|
WITH (pad_index = OFF, statistics_norecompute = OFF, sort_in_tempdb
|
|
=
|
|
OFF,
|
|
drop_existing = OFF, online = OFF, allow_row_locks = ON,
|
|
allow_page_locks
|
|
=
|
|
ON) ON [PRIMARY]
|
|
|
|
-- Import records once database has been created.
|
|
SET @bulkinsert = N'BULK INSERT event_logs FROM '''
|
|
+ @filepath
|
|
+
|
|
N''' WITH (FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')'
|
|
EXEC sp_executesql @bulkinsert
|
|
|
|
END
|
|
GO
|
|
|
|
|