USP_ODATAQUERYRUNINFO_ADDORUPDATE

Parameters

Parameter Parameter Type Mode Description
@QUERYID uniqueidentifier IN
@LASTRUNDATE date IN
@LASTRUNDURATION time IN
@LASTRUNBY uniqueidentifier IN
@LASTRUNRESULTCOUNT int IN

Definition

Copy


CREATE procedure dbo.USP_ODATAQUERYRUNINFO_ADDORUPDATE
(
    @QUERYID as uniqueidentifier,
    @LASTRUNDATE as date,
    @LASTRUNDURATION as time,
    @LASTRUNBY as uniqueidentifier,
    @LASTRUNRESULTCOUNT as int
)
as
begin
    if exists (select 1 from dbo.[ADHOCQUERY] where [ID] = @QUERYID union all select 1 from dbo.[SMARTQUERYINSTANCE] where [ID] = @QUERYID
    begin
        merge dbo.[ODATAQUERYRUNINFO] as target
        using (select @QUERYID as [QUERYID], @LASTRUNDATE as [LASTRUNDATE], @LASTRUNDURATION as [LASTRUNDURATION], @LASTRUNBY as [LASTRUNBY], @LASTRUNRESULTCOUNT as [LASTRUNRESULTCOUNT]) as source
        on target.[QUERYID] = source.[QUERYID]
        when matched then
            update set
                target.[LASTRUNDATE] = source.[LASTRUNDATE],
                target.[LASTRUNDURATION] = source.[LASTRUNDURATION],
                target.[LASTRUNBY] = source.[LASTRUNBY],
                target.[LASTRUNRESULTCOUNT] = source.[LASTRUNRESULTCOUNT],
                target.[RUNCOUNT] = target.[RUNCOUNT] + 1
        when not matched by target then
            insert (
                [QUERYID],
                [LASTRUNDATE],
                [LASTRUNDURATION],
                [LASTRUNBY],
                [LASTRUNRESULTCOUNT],
                [RUNCOUNT]
            )
            values (
                source.[QUERYID],
                source.[LASTRUNDATE],
                source.[LASTRUNDURATION],
                source.[LASTRUNBY],
                source.[LASTRUNRESULTCOUNT],
                1
            );
    end
end