dbo.QBM_PSessionErrorAdd
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_FGISessionErrorRethrow source text reference
- references source dbo.QBM_PSessionErrorSave source text reference
- references source dbo.QBM_FTSessionErrorLoad source text reference
References
Referenced By
- dbo.QBM_FSQProcedureDef
- dbo.QBM_FSQTriggerDef
- dbo.ADS_PAfterMigrationJobCreate
- dbo.ADS_PAfterMigrationTasks
- dbo.ADS_RAccountInADSGroup
- dbo.ADS_RADSMachineInADSGroup
- dbo.ADS_RBaseTreeHasObject
- dbo.ADS_RBaseTreeOwnsObjectPrepair
- dbo.ADS_RContactInADSGroup
- dbo.ADS_RGroupInADSGroup
- dbo.ADS_ROrgHasADSGroup
- dbo.ADS_RPersonHasObject
- dbo.ADS_ZAccountInADSGroup
- dbo.ADS_ZADSMachineInADSGroup
- dbo.ADS_ZAllForOneHardware
- dbo.ADS_ZAllForOneOrg
- dbo.ADS_ZAllForOnePerson
- dbo.ADS_ZAllForOneWorkDesk
- dbo.ADS_ZBaseTreeHasObject
- dbo.ADS_ZBaseTreeOwnsObject
- dbo.ADS_ZBaseTreeOwnsObjectPrepair
- dbo.ADS_ZContactInADSGroup
- dbo.ADS_ZGroupInADSGroup
- dbo.ADS_ZGroupInADSGroup_Circ
- dbo.ADS_ZOrgHasADSGroup
- dbo.ADS_ZPersonHasADSGroup
- dbo.ADS_ZPersonHasObject
- dbo.ADS_ZWorkDeskInADSGroup
- dbo.ATT_P47650F5671BCBA8B679125E_
- dbo.ATT_P600B8EB3A312074D1A10A4A_
- dbo.ATT_PAfterMigrationTasks
- dbo.ATT_PAttestationCaseCreate
- dbo.ATT_PAttestationCaseCreate_i
- dbo.ATT_PAttestationCaseDeleteOld
- dbo.ATT_PAttestationHelperFill
- dbo.ATT_PAttestationHelperFill_i
- dbo.ATT_PAttestationResetOneLevel
- dbo.ATT_PHelperAttestationPolicy
- dbo.ATT_RAttestationAbort
- dbo.ATT_RAttestationCheckValid
- dbo.ATT_RAttestationHelperFill
- dbo.ATT_RAttestationHelperFill_Cfg
- dbo.ATT_RAttestationMakeDecisionCD
- dbo.ATT_RAttestationMakeDecisionEX
- dbo.ATT_RAttestationMakeDecisionWC
- dbo.ATT_RAttestationReminder
- dbo.ATT_RAttestationReset
- dbo.ATT_ZAllForPersonInBaseTree
- dbo.ATT_ZAttestationAbort
- dbo.ATT_ZAttestationCheck
- dbo.ATT_ZAttestationCheckValid
- dbo.ATT_ZAttestationHelperFill_Cfg
- dbo.ATT_ZAttestationMakeDecisionCD
- dbo.ATT_ZAttestationMakeDecisionEX
- dbo.ATT_ZAttestationMakeDecisionWC
- dbo.ATT_ZAttestationObjectPreProp
- dbo.ATT_ZAttestationReminder
- dbo.ATT_ZAttestationReset
- dbo.ATT_ZAttestationRunDeleteOld
- dbo.ATT_ZAttestationWzParmPreProp
Complete Source
1CREATE PROCEDURE QBM_PSessionErrorAdd(2 @SessionErrorNew QBM_YSessionError READONLY,3 @SQLCmd nvarchar(max) = NULL4)5AS6BEGIN7 DECLARE @SessionError_intern QBM_YSessionError8 DECLARE @ExistingErrors QBM_YSessionError9 DECLARE @CountExistingEntries int10 DECLARE @BinImCatchBlock BIT = 011 DECLARE @BinImTrigger BIT = 012 SET nocount13 ON14 SET XACT_ABORT OFF15 IF ERROR_PROCEDURE() > ' '16 BEGIN17 SELECT @BinImCatchBlock = 118 END19 IF EXISTS(20 SELECT TOP 1 121 FROM sys.triggers t22 WHERE23 t.name = ERROR_PROCEDURE())24 BEGIN25 SELECT @BinImTrigger = 126 END27 IF EXISTS(28 SELECT TOP 1 129 FROM @SessionErrorNew e)30 BEGIN31 INSERT INTO @SessionError_intern(ErrorMessage,32 ErrorSeverity,33 ErrorState,34 ErrorNumber,35 ProcedureName,36 ProcedureLine,37 MessageDate,38 GenProcID,39 RepeatCounter,40 IsReThrow,41 SourceCode)42 SELECT43 ErrorMessage,44 ErrorSeverity,45 ErrorState,46 ErrorNumber,47 ProcedureName,48 ProcedureLine,49 MessageDate,50 GenProcID,51 RepeatCounter,52 IsReThrow,53 SourceCode54 FROM @SessionErrorNew55 ORDER BY ElementIndex56 END57 ELSE58 BEGIN59 INSERT INTO @SessionError_intern(ErrorMessage,60 ErrorSeverity,61 ErrorState,62 ErrorNumber,63 ProcedureName,64 ProcedureLine,65 MessageDate,66 GenProcID,67 RepeatCounter,68 IsReThrow,69 SourceCode)70 SELECT71 ERROR_MESSAGE() AS ErrorMessage,72 ERROR_SEVERITY() AS ErrorSeverity,73 ERROR_STATE() AS ErrorState,74 ERROR_NUMBER() AS ErrorNumber,75 ERROR_PROCEDURE() AS ProcedureName,76 ERROR_LINE() AS ProcedureLine,77 GETUTCDATE(),78 NULL AS GenProcID,79 0 AS RepeatCounter,80 CASE81 WHEN ERROR_NUMBER() = 50000 AND isnull(ERROR_MESSAGE(),82 '') IN('',83 'rethrow',84 dbo.QBM_FGISessionErrorRethrow()) OR ERROR_NUMBER() = 50001 THEN85 186 ELSE 087 END AS IsReThrow,88 @SQLCmd AS SourceCode89 END90 UPDATE @SessionError_intern91 SET ErrorMessage = '<no message>'92 FROM @SessionError_intern i93 WHERE94 ISNULL(i.ErrorMessage,95 '') = '' AND i.ErrorNumber NOT IN(50000,96 50001)97 UPDATE @SessionError_intern98 SET ProcedureLine = 099 WHERE100 ISNULL(ProcedureLine,101 0) = 0102 UPDATE @SessionError_intern103 SET ProcedureName = '<no procedure>'104 WHERE105 ISNULL(ProcedureName,106 '') = ''107 INSERT INTO @ExistingErrors(ErrorMessage,108 ErrorSeverity,109 ErrorState,110 ErrorNumber,111 ProcedureName,112 ProcedureLine,113 MessageDate,114 GenProcID,115 RepeatCounter,116 IsReThrow,117 SourceCode)118 SELECT119 ErrorMessage,120 ErrorSeverity,121 ErrorState,122 ErrorNumber,123 ProcedureName,124 ProcedureLine,125 MessageDate,126 GenProcID,127 RepeatCounter,128 IsReThrow,129 SourceCode130 FROM dbo.QBM_FTSessionErrorLoad() l131 ORDER BY l.RecordNumber132 SELECT @CountExistingEntries = @@ROWCOUNT133 IF EXISTS(134 SELECT TOP 1 1135 FROM @ExistingErrors e136 JOIN @SessionError_intern n137 ON e.ElementIndex = @CountExistingEntries138 WHERE139 e.ErrorNumber = n.ErrorNumber AND e.ErrorMessage = n.ErrorMessage AND e.ProcedureName = n.ProcedureName AND e.ProcedureLine = n.ProcedureLine140 )141 BEGIN142 UPDATE @ExistingErrors143 SET RepeatCounter += 1144 FROM @ExistingErrors e145 WHERE146 e.ElementIndex = @CountExistingEntries147 END148 ELSE149 BEGIN150 IF EXISTS(151 SELECT TOP 1 1152 FROM @SessionError_intern i153 WHERE154 i.IsReThrow = 1 OR(i.ErrorNumber IN(50000, 50001) AND isnull(i.ErrorMessage, '') IN('', dbo.QBM_FGISessionErrorRethrow())) OR i.ErrorMessage155 = 'rethrow')156 BEGIN157 UPDATE @SessionError_intern158 SET ErrorSeverity = CASE159 WHEN isnull(e.ErrorSeverity,160 18) < i.ErrorSeverity THEN161 i.ErrorSeverity162 ELSE isnull(e.ErrorSeverity,163 18)164 END,165 ErrorState = CASE166 WHEN isnull(e.ErrorState,167 1) < i.ErrorState THEN168 i.ErrorState169 ELSE isnull(e.ErrorState,170 1)171 END,172 ErrorMessage = 'rethrow',173 ErrorNumber = 50000,174 IsReThrow = 1175 FROM @SessionError_intern i176 LEFT177 OUTER178 JOIN @ExistingErrors e179 ON e.ElementIndex = @CountExistingEntries180 WHERE181 i.IsReThrow = 1 OR(i.ErrorNumber IN(50000, 50001) AND isnull(i.ErrorMessage, '') IN('', dbo.QBM_FGISessionErrorRethrow())) OR i.ErrorMessage182 = 'rethrow'183 END184 INSERT INTO @ExistingErrors(ErrorMessage,185 ErrorSeverity,186 ErrorState,187 ErrorNumber,188 ProcedureName,189 ProcedureLine,190 MessageDate,191 GenProcID,192 RepeatCounter,193 IsReThrow,194 SourceCode)195 SELECT196 ErrorMessage,197 ErrorSeverity,198 ErrorState,199 ErrorNumber,200 ProcedureName,201 ProcedureLine,202 MessageDate,203 GenProcID,204 RepeatCounter,205 IsReThrow,206 SourceCode207 FROM @SessionError_intern208 ORDER BY ElementIndex209 END210 IF @BinImCatchBlock = 1 AND @BinImTrigger = 1 AND XACT_STATE() = -1211 BEGIN212 INSERT INTO @SessionError_intern(ErrorMessage,213 ErrorSeverity,214 ErrorState,215 ErrorNumber,216 ProcedureName,217 ProcedureLine,218 MessageDate,219 GenProcID,220 RepeatCounter,221 IsReThrow,222 SourceCode)223 SELECT224 'Uncommitable transaction detected in Trigger, will rollback' AS ErrorMessage,225 ERROR_SEVERITY() AS ErrorSeverity,226 ERROR_STATE() AS ErrorState,227 50002 AS ErrorNumber,228 ERROR_PROCEDURE() AS ProcedureName,229 ERROR_LINE() AS ProcedureLine,230 GETUTCDATE(),231 NULL AS GenProcID,232 0 AS RepeatCounter,233 0 AS IsReThrow,234 NULL AS SourceCode235 END236 EXEC QBM_PSessionErrorSave @ExistingErrors237END
Open raw exported source
1 create procedure QBM_PSessionErrorAdd (@SessionErrorNew QBM_YSessionError readonly , @SQLCmd nvarchar(max) = null ) as begin declare @SessionError_intern2 QBM_YSessionError declare @ExistingErrors QBM_YSessionError declare @CountExistingEntries int declare @BinImCatchBlock bit = 0 declare @BinImTrigger bit3 = 0 set nocount on SET XACT_ABORT OFF if ERROR_PROCEDURE() > ' ' begin select @BinImCatchBlock = 1 end if exists (select top 1 1 from sys.triggers t where4 t.name = ERROR_PROCEDURE() ) begin select @BinImTrigger = 1 end if exists (select top 1 1 from @SessionErrorNew e ) begin insert into @SessionError_intern5 (ErrorMessage, ErrorSeverity, ErrorState, ErrorNumber , ProcedureName, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow, SourceCode) select6 ErrorMessage, ErrorSeverity, ErrorState, ErrorNumber , ProcedureName, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow, SourceCode from7 @SessionErrorNew order by ElementIndex end else begin insert into @SessionError_intern(ErrorMessage, ErrorSeverity, ErrorState, ErrorNumber , ProcedureName8, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow, SourceCode) select ERROR_MESSAGE() as ErrorMessage , ERROR_SEVERITY() as ErrorSeverity9 , ERROR_STATE() as ErrorState , ERROR_NUMBER() as ErrorNumber , ERROR_PROCEDURE() as ProcedureName, ERROR_LINE() as ProcedureLine, GETUTCDATE() , null10 as GenProcID, 0 as RepeatCounter , case when ERROR_NUMBER() = 50000 and isnull(ERROR_MESSAGE(), '') in ('', 'rethrow', dbo.QBM_FGISessionErrorRethrow(11)) or ERROR_NUMBER() = 50001 then 1 else 0 end as IsReThrow , @SQLCmd as SourceCode end update @SessionError_intern set ErrorMessage = '<no message>'12 from @SessionError_intern i where ISNULL(i.ErrorMessage, '') = '' and i.ErrorNumber not in ( 50000, 50001) update @SessionError_intern set ProcedureLine13 = 0 where ISNULL(ProcedureLine, 0) = 0 update @SessionError_intern set ProcedureName = '<no procedure>' where ISNULL(ProcedureName, '') = '' insert into14 @ExistingErrors(ErrorMessage, ErrorSeverity, ErrorState, ErrorNumber , ProcedureName, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow15, SourceCode) select ErrorMessage, ErrorSeverity, ErrorState, ErrorNumber , ProcedureName, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow16, SourceCode from dbo.QBM_FTSessionErrorLoad() l order by l.RecordNumber select @CountExistingEntries = @@ROWCOUNT if exists (select top 1 1 from @ExistingErrors17 e join @SessionError_intern n on e.ElementIndex = @CountExistingEntries where e.ErrorNumber = n.ErrorNumber and e.ErrorMessage = n.ErrorMessage and e.ProcedureName18 = n.ProcedureName and e.ProcedureLine = n.ProcedureLine ) begin update @ExistingErrors set RepeatCounter += 1 from @ExistingErrors e where e.ElementIndex19 = @CountExistingEntries end else begin if exists (select top 1 1 from @SessionError_intern i where i.IsReThrow = 1 or (i.ErrorNumber in( 50000, 5000120) and isnull(i.ErrorMessage, '') in( '', dbo.QBM_FGISessionErrorRethrow()) ) or i.ErrorMessage = 'rethrow' ) begin update @SessionError_intern set ErrorSeverity21 = case when isnull(e.ErrorSeverity, 18) < i.ErrorSeverity then i.ErrorSeverity else isnull(e.ErrorSeverity, 18) end , ErrorState = case when isnull(e.ErrorState22, 1) < i.ErrorState then i.ErrorState else isnull(e.ErrorState, 1) end , ErrorMessage = 'rethrow' , ErrorNumber = 50000 , IsReThrow = 1 from @SessionError_intern23 i left outer join @ExistingErrors e on e.ElementIndex = @CountExistingEntries where i.IsReThrow = 1 or (i.ErrorNumber in ( 50000, 50001) and isnull(i.ErrorMessage24, '') in( '', dbo.QBM_FGISessionErrorRethrow()) ) or i.ErrorMessage = 'rethrow' end insert into @ExistingErrors(ErrorMessage, ErrorSeverity, ErrorState25, ErrorNumber , ProcedureName, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow, SourceCode) select ErrorMessage, ErrorSeverity, ErrorState26, ErrorNumber , ProcedureName, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow, SourceCode from @SessionError_intern order by ElementIndex27 end if @BinImCatchBlock = 1 and @BinImTrigger = 1 and XACT_STATE() = -1 begin insert into @SessionError_intern(ErrorMessage, ErrorSeverity, ErrorState28, ErrorNumber , ProcedureName, ProcedureLine, MessageDate , GenProcID, RepeatCounter, IsReThrow, SourceCode) select 'Uncommitable transaction detected in Trigger, will rollback'29 as ErrorMessage , ERROR_SEVERITY() as ErrorSeverity , ERROR_STATE() as ErrorState , 50002 as ErrorNumber , ERROR_PROCEDURE() as ProcedureName, ERROR_LINE30() as ProcedureLine, GETUTCDATE() , null as GenProcID, 0 as RepeatCounter , 0 as IsReThrow , null as SourceCode end exec QBM_PSessionErrorSave @ExistingErrors31 end 32