dbo.QBM_PQBMEventClean
Stored ProcedureSQL_STORED_PROCEDURESandbox DB
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
References
- dbo.QBM_FCVElementToObjectKey2
- dbo.QBM_FCVGUIDToModuleOwner
- dbo.QBM_FGISessionErrorRethrow
- dbo.QBM_PSessionErrorAdd
Referenced By
- No direct source references extracted.
Complete Source
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
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