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