204 lines
4.9 KiB
Transact-SQL
204 lines
4.9 KiB
Transact-SQL
if (select top 1 0 from sys.databases where name = 'NucelarMonitor') is null create database NucelarMonitor collate Latin1_General_100_CI_AS_SC_UTF8
|
|
go
|
|
use NucelarMonitor
|
|
|
|
if object_id(N'dbo.get_procedure', N'P') is not null drop procedure dbo.get_procedure
|
|
go
|
|
create procedure dbo.get_procedure
|
|
@database varchar(64),
|
|
@procedure varchar(64),
|
|
@id integer output
|
|
as begin
|
|
|
|
declare @database_id integer = (
|
|
select top 1 id from dbo.Databases where
|
|
date_out is null and
|
|
[name] = @database
|
|
)
|
|
|
|
set nocount on
|
|
|
|
if @database_id is null begin
|
|
insert into dbo.Databases([name]) values (@database)
|
|
set @database_id = scope_identity()
|
|
end
|
|
|
|
set @id = (
|
|
select top 1 id from dbo.Procedures where
|
|
date_out is null and
|
|
[database] = @database_id and
|
|
[name] = @procedure
|
|
)
|
|
|
|
if @id is null begin
|
|
insert into dbo.Procedures([database], [name]) values (@database_id, @procedure)
|
|
set @id = scope_identity()
|
|
end
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.get_big_data', N'P') is not null drop procedure dbo.get_big_data
|
|
go
|
|
create procedure dbo.get_big_data
|
|
@value varchar(max),
|
|
@id integer output
|
|
as begin
|
|
|
|
declare @hash binary(64) = dbo.hash_big_data(@value)
|
|
|
|
set nocount on
|
|
|
|
set @id = (
|
|
select top 1 id from dbo.BigData where
|
|
date_out is null and
|
|
[hash] = @hash
|
|
)
|
|
|
|
if @id is null begin
|
|
insert into dbo.BigData([hash], [value]) values (@hash, @value)
|
|
set @id = scope_identity()
|
|
end
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.get_message', N'P') is not null drop procedure dbo.get_message
|
|
go
|
|
create procedure dbo.get_message
|
|
@message varchar(128),
|
|
@id integer output
|
|
as begin
|
|
|
|
set nocount on
|
|
|
|
set @id = (
|
|
select top 1 id from dbo.Messages where
|
|
date_out is null and
|
|
[key] = @message
|
|
)
|
|
|
|
if @id is null begin
|
|
insert into dbo.Messages([key]) values (@message)
|
|
set @id = scope_identity()
|
|
end
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.get_type', N'P') is not null drop procedure dbo.get_type
|
|
go
|
|
create procedure dbo.get_type
|
|
@name varchar(32),
|
|
@id integer output
|
|
as begin set nocount on
|
|
|
|
set @id = (
|
|
select top 1 id from dbo.Types where
|
|
date_out is null and
|
|
[name] = @name
|
|
)
|
|
|
|
if @id is null begin
|
|
insert into dbo.Types([name]) values (@name)
|
|
set @id = scope_identity()
|
|
end
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.get_machine', N'P') is not null drop procedure dbo.get_machine
|
|
go
|
|
create procedure dbo.get_machine
|
|
@key varchar(32),
|
|
@id integer output
|
|
as begin set nocount on
|
|
|
|
set @id = (
|
|
select top 1 id from dbo.Machines where
|
|
date_out is null and
|
|
[key] = @key
|
|
)
|
|
|
|
if @id is null begin
|
|
insert into dbo.Machines([key]) values (@key)
|
|
set @id = scope_identity()
|
|
end
|
|
|
|
end
|
|
|
|
if object_id(N'dbo.get_basic_data_ids', N'P') is not null drop procedure dbo.get_basic_data_ids
|
|
go
|
|
create procedure dbo.get_basic_data_ids
|
|
@key varchar(32),
|
|
@candle_start datetime,
|
|
@candle_end datetime,
|
|
@candle_interations integer,
|
|
@machine_id integer output,
|
|
@candle_time_id integer output
|
|
as begin set nocount on
|
|
|
|
execute dbo.get_machine @key, @machine_id output
|
|
|
|
set @candle_time_id = (
|
|
select top 1 id from dbo.CandlesTimes where
|
|
date_out is null and
|
|
[from] = @candle_start and
|
|
[to] = @candle_end and
|
|
iterations = @candle_interations
|
|
)
|
|
if @candle_time_id is null begin
|
|
insert into dbo.CandlesTimes([from], [to], iterations) values (@candle_start, @candle_end, @candle_interations)
|
|
set @candle_time_id = scope_identity()
|
|
end
|
|
set @candle_time_id = @candle_time_id
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.get_interface', N'P') is not null drop procedure dbo.get_interface
|
|
go
|
|
create procedure dbo.get_interface
|
|
@name varchar(32),
|
|
@id integer output
|
|
as begin set nocount on
|
|
|
|
set @id = (
|
|
select top 1 id from dbo.Interfaces where
|
|
date_out is null and
|
|
[name] = @name
|
|
)
|
|
|
|
if @id is null begin
|
|
insert into dbo.Interfaces([name]) values (@name)
|
|
set @id = scope_identity()
|
|
end
|
|
|
|
end
|
|
go
|
|
|
|
if object_id(N'dbo.get_machine_interface', N'P') is not null drop procedure dbo.get_machine_interface
|
|
go
|
|
create procedure dbo.get_machine_interface
|
|
@key varchar(32),
|
|
@name varchar(32),
|
|
@candle_start datetime,
|
|
@candle_end datetime,
|
|
@candle_interations integer,
|
|
@machine_id integer output,
|
|
@candle_time_id integer output,
|
|
@interface_id integer output
|
|
as begin set nocount on
|
|
|
|
execute dbo.get_basic_data_ids
|
|
@key,
|
|
@candle_start,
|
|
@candle_end,
|
|
@candle_interations,
|
|
@machine_id output,
|
|
@candle_time_id output
|
|
|
|
execute dbo.get_interface @name, @interface_id output
|
|
|
|
end
|
|
go |