Back to OIM Explorer

dbo.QBM_PQBMEventClean

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 2.936 characters

Interpretation

  • Database routine. Review parameters, called procedures, DBQueue inserts, and QBM_PJobCreate helper calls before assuming side effects.

Relations

  • No extracted relations.

Typed Edges

  • references source dbo.QBM_FCVElementToObjectKey2 source text reference
  • references source dbo.QBM_FCVGUIDToModuleOwner source text reference
  • references source dbo.QBM_FGISessionErrorRethrow source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference

Complete Source

SQL117 lines
1CREATE PROCEDURE QBM_PQBMEventClean2AS3BEGIN4  DECLARE @DebugSwitch int = 05  DECLARE @doppelte TABLE(EventName nvarchar(64) collate database_default,6  uid_dialogtable varchar(38) collate database_default,7  uid_QBMEventToUse varchar(38) collate database_default)8  DECLARE @XUser nvarchar(64) = object_name(@@procid)9  DECLARE @Xdate datetime = getutcdate()10  SET XACT_ABORT OFF11  BEGIN TRY12    INSERT INTO @doppelte(EventName,13    uid_dialogtable,14    uid_QBMEventToUse)15    SELECT16      l.EventName,17      l.UID_DialogTable,18      substring(min(str(m.SortOrder) + l.UID_QBMEvent),19      11,20      36)21    FROM QBMEvent l22    JOIN(23    SELECT24      e.EventName,25      e.UID_DialogTable26    FROM QBMEvent e27    GROUP BY e.EventName,28    e.UID_DialogTable29    HAVING count(*) > 1) AS d30      ON l.EventName = d.EventName AND l.UID_DialogTable = d.UID_DialogTable31    JOIN QBMModuleDef m32      ON dbo.QBM_FCVGUIDToModuleOwner(l.UID_QBMEvent) = m.ModuleName33    GROUP BY l.EventName,34    l.UID_DialogTable35    IF @DebugSwitch > 036    BEGIN37      SELECT *38      FROM @doppelte39    END40    UPDATE JobEventGen41    SET UID_QBMEvent = d.uid_QBMEventToUse,42    XDateUpdated = @Xdate,43    XUserUpdated = @XUser44    FROM JobEventGen g45    JOIN QBMEvent e46      ON g.UID_QBMEvent = e.UID_QBMEvent47    JOIN @doppelte d48      ON d.EventName = e.EventName AND d.uid_dialogtable = e.UID_DialogTable49    WHERE50      g.UID_QBMEvent <> d.uid_QBMEventToUse51    UPDATE JobAutoStart52    SET UID_QBMEvent = d.uid_QBMEventToUse,53    XDateUpdated = @Xdate,54    XUserUpdated = @XUser55    FROM JobAutoStart g56    JOIN QBMEvent e57      ON g.UID_QBMEvent = e.UID_QBMEvent58    JOIN @doppelte d59      ON d.EventName = e.EventName AND d.uid_dialogtable = e.UID_DialogTable60    WHERE61      g.UID_QBMEvent <> d.uid_QBMEventToUse62    INSERT INTO QBMEventHasFeature(UID_QBMEvent,63    UID_DialogFeature,64    XObjectKey,65    XDateInserted,66    XDateUpdated,67    XUserInserted,68    XUserUpdated)69    SELECT70      d.uid_QBMEventToUse,71      g.UID_DialogFeature,72      dbo.QBM_FCVElementToObjectKey2('QBMEventHasFeature',73      'UID_QBMEvent',74      d.uid_QBMEventToUse,75      'UID_DialogFeature',76      g.UID_DialogFeature),77      g.XDateInserted,78      g.XDateUpdated,79      g.XUserInserted,80      g.XUserUpdated81    FROM QBMEventHasFeature g82    JOIN QBMEvent e83      ON g.UID_QBMEvent = e.UID_QBMEvent84    JOIN @doppelte d85      ON d.EventName = e.EventName AND d.uid_dialogtable = e.UID_DialogTable86    WHERE87      g.UID_QBMEvent <> d.uid_QBMEventToUse AND NOT EXISTS(88    SELECT TOP 1 189    FROM QBMEventHasFeature x90    WHERE91      x.UID_DialogFeature = g.UID_DialogFeature AND x.UID_QBMEvent = d.uid_QBMEventToUse)92    DELETE QBMEventHasFeature93    FROM QBMEventHasFeature g94    JOIN QBMEvent e95      ON g.UID_QBMEvent = e.UID_QBMEvent96    JOIN @doppelte d97      ON d.EventName = e.EventName AND d.uid_dialogtable = e.UID_DialogTable98    WHERE99      g.UID_QBMEvent <> d.uid_QBMEventToUse100    DELETE QBMEvent101    FROM QBMEvent e102    JOIN @doppelte d103      ON e.UID_DialogTable = d.uid_dialogtable AND e.EventName = d.EventName104    WHERE105      e.UID_QBMEvent <> d.uid_QBMEventToUse106  END TRY107  BEGIN CATCH108    EXEC QBM_PSessionErrorAdd DEFAULT109    DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()110    RAISERROR(@Rethrow,111    18,112    1)113      WITH NOWAIT114  END CATCH115  ende:116  RETURN117END
Open raw exported source
SQL ยท Raw20 lines
1   create   procedure QBM_PQBMEventClean as begin declare @DebugSwitch int = 0 declare @doppelte table (EventName nvarchar(64) collate database_default2 , uid_dialogtable varchar(38) collate database_default , uid_QBMEventToUse varchar(38) collate database_default ) declare @XUser nvarchar(64) = object_name3(@@procid) declare @Xdate datetime = getutcdate() SET XACT_ABORT OFF BEGIN TRY insert into @doppelte (EventName, uid_dialogtable, uid_QBMEventToUse) select4 l.EventName, l.UID_DialogTable , substring(min(str( m.SortOrder) + l.UID_QBMEvent), 11,36) from QBMEvent l join ( select e.EventName, e.UID_DialogTable5 from QBMEvent e group by e.EventName, e.UID_DialogTable having count(*) > 1 ) as d on l.EventName = d.EventName and l.UID_DialogTable = d.UID_DialogTable6 join QBMModuleDef m on dbo.QBM_FCVGUIDToModuleOwner(l.UID_QBMEvent) = m.ModuleName group by l.EventName, l.UID_DialogTable if @DebugSwitch > 0 begin select7 * from @doppelte end update JobEventGen set UID_QBMEvent = d.uid_QBMEventToUse , XDateUpdated = @Xdate , XUserUpdated = @XUser  from JobEventGen g join8 QBMEvent e on g.UID_QBMEvent = e.UID_QBMEvent join @doppelte d on d.EventName = e.EventName and d.uid_dialogtable = e.UID_DialogTable where g.UID_QBMEvent9 <> d.uid_QBMEventToUse update JobAutoStart set UID_QBMEvent = d.uid_QBMEventToUse , XDateUpdated = @Xdate , XUserUpdated = @XUser  from JobAutoStart g10 join QBMEvent e on g.UID_QBMEvent = e.UID_QBMEvent join @doppelte d on d.EventName = e.EventName and d.uid_dialogtable = e.UID_DialogTable where g.UID_QBMEvent11 <> d.uid_QBMEventToUse insert into QBMEventHasFeature (UID_QBMEvent, UID_DialogFeature, XObjectKey , XDateInserted, XDateUpdated, XUserInserted, XUserUpdated12 ) select d.uid_QBMEventToUse, g.UID_DialogFeature, dbo.QBM_FCVElementToObjectKey2 ('QBMEventHasFeature', 'UID_QBMEvent', d.uid_QBMEventToUse, 'UID_DialogFeature'13, g.UID_DialogFeature) , g.XDateInserted, g.XDateUpdated, g.XUserInserted, g.XUserUpdated from QBMEventHasFeature g join QBMEvent e on g.UID_QBMEvent =14 e.UID_QBMEvent join @doppelte d on d.EventName = e.EventName and d.uid_dialogtable = e.UID_DialogTable where g.UID_QBMEvent <> d.uid_QBMEventToUse and15 not exists (select top 1 1 from QBMEventHasFeature x where x.UID_DialogFeature = g.UID_DialogFeature and x.UID_QBMEvent = d.uid_QBMEventToUse ) delete16 QBMEventHasFeature  from QBMEventHasFeature g join QBMEvent e on g.UID_QBMEvent = e.UID_QBMEvent join @doppelte d on d.EventName = e.EventName and d.uid_dialogtable17 = e.UID_DialogTable where g.UID_QBMEvent <> d.uid_QBMEventToUse delete QBMEvent  from QBMEvent e join @doppelte d on e.UID_DialogTable = d.uid_dialogtable18 and e.EventName = d.EventName where e.UID_QBMEvent <> d.uid_QBMEventToUse END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default declare @Rethrow varchar19(1000) = dbo.QBM_FGISessionErrorRethrow() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT END CATCH ende:  return end 20