Knocks/BackEnd/Knoks.Operate/Stored Procedures/BO_AddTickerData.sql

48 lines
1.4 KiB
Transact-SQL

CREATE PROCEDURE [dbo].[BO_AddTickerData]
@TickerId INT,
@TickerTime datetime2,
@Interval NCHAR(1) = 'M',
@TickState INT = 0,
@Open DECIMAL(18, 10) = NULL,
@High DECIMAL(18, 10) = NULL,
@Close DECIMAL(18, 10) = NULL,
@Low DECIMAL(18, 10) = NULL,
@Volume DECIMAL(18, 10) = 0
AS
DECLARE @TranStarted BIT,
@ERROR SMALLINT,
@RC INT,
@RowCount INT,
@ErrorMessage VARCHAR(100)
SET @TranStarted = 0
SET @RC = 0
BEGIN TRY
if exists (select 1 from TickerData where TickerId=@TickerId and TickerTime=@TickerTime and Interval=@Interval)
update TickerData
set TickState = @TickState, [Open] = @Open, High = @High, [Close] = @Close, Low= @Low, Volume= @Volume
where TickerId=@TickerId and TickerTime=@TickerTime and Interval=@Interval
else
INSERT TickerData ( TickerId, TickerTime, Interval, TickState, [Open], High, [Close], Low, [Volume])
VALUES(@TickerId, @TickerTime, @Interval, @TickState, @Open, @High, @Close, @Low, @Volume)
if @@ROWCOUNT=0
BEGIN
SET @RC = 2
SET @ErrorMessage = 'Update problem'
RAISERROR (@ErrorMessage,16,1);
END
RETURN 0
END TRY
BEGIN CATCH
EXEC USP_LogError
EXEC USP_RethrowError
IF @RC = 0
SET @RC = 1 ---- Unexpected Error
RETURN @RC
END CATCH
GO