dbo.QBM_PMNTableOriginUpdate
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_FCVBinaryToString source text reference
- references source dbo.QBM_FGIBitPatternXOrigin source text reference
- references source dbo.QBM_FGIColumnExists source text reference
- references source dbo.QBM_FGISessionContext source text reference
- references source dbo.QBM_FGISessionErrorRethrow source text reference
- references source dbo.QBM_PExecuteSQLWithRetry_LLP source text reference
- references source dbo.QBM_PSessionContextSet source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
References
- dbo.QBM_FCVBinaryToString
- dbo.QBM_FGIBitPatternXOrigin
- dbo.QBM_FGIColumnExists
- dbo.QBM_FGISessionContext
- dbo.QBM_FGISessionErrorRethrow
- dbo.QBM_PExecuteSQLWithRetry_LLP
- dbo.QBM_PSessionContextSet
- dbo.QBM_PSessionErrorAdd
Referenced By
- dbo.ADS_ZAccountInADSGroup
- dbo.ADS_ZADSMachineInADSGroup
- dbo.ADS_ZContactInADSGroup
- dbo.ADS_ZOrgHasADSGroup
- dbo.CPL_PComplianceCheckMakeProc_h
- dbo.LDP_ZAccountInLDAPGroup
- dbo.LDP_ZLDPMachineInLDAPGroup
- dbo.LDP_ZOrgHasLDAPGroup
- dbo.QER_PDynamicGroupMakeProc_hlp
- dbo.QER_ZHelperHeadOrg
- dbo.QER_ZHelperHeadPerson
- dbo.QER_ZOrgHasQERAssign
- dbo.QER_ZOrgHasQERResource
- dbo.QER_ZOrgHasQERReuse
- dbo.QER_ZOrgHasQERReuseUS
- dbo.QER_ZPersonHasQERAssign
- dbo.QER_ZPersonHasQERResource
- dbo.QER_ZPersonHasQERReuse
- dbo.QER_ZPersonHasQERReuseUS
- dbo.RMS_ZESetHasEntitlement
- dbo.RMS_ZOrgHasESet
- dbo.RMS_ZPersonHasESet
- dbo.RMS_ZWorkDeskHasESet
- dbo.RPS_ZOrgHasRPSReport
- dbo.RPS_ZPersonHasRPSReport
- dbo.TSB_ZOrgHasTSBAccountDef
- dbo.TSB_ZOrgHasUNSGroupB
- dbo.TSB_ZOrgHasUNSGroupB1
- dbo.TSB_ZOrgHasUNSGroupB2
- dbo.TSB_ZOrgHasUNSGroupB3
- dbo.TSB_ZPersonHasTSBAccountDef
- dbo.TSB_ZUNSAccountBHasUNSItemB
- dbo.TSB_ZUNSAccountBInUNSGroupB
- dbo.TSB_ZUNSAccountBInUNSGroupB1
- dbo.TSB_ZUNSAccountBInUNSGroupB2
- dbo.TSB_ZUNSAccountBInUNSGroupB3
- dbo.TSB_ZUNSGroupBHasUNSItemB
Complete Source
1CREATE PROCEDURE QBM_PMNTableOriginUpdate(2 @TargetTable varchar(30),3 @ElementColumn varchar(30),4 @AssignedElementColumn varchar(30),5 @RestrictionClause nvarchar(max) = ''6)7AS8BEGIN9 DECLARE @GenProcID varchar(38)10 DECLARE @SQLCmd nvarchar(max)11 DECLARE @SQLPattern nvarchar(max)12 DECLARE @ExistsXIsInEffect BIT = 013 DECLARE @ExistsXdate BIT = 014 DECLARE @RestrictionClause_intern nvarchar(max)15 DECLARE @DebugSwitch int = 016 DECLARE @IsCreatePendingChange BIT = 017 DECLARE @Maske varchar(64)18 DECLARE @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext('')19 DECLARE @XUser_R nvarchar(64) = dbo.QBM_FGISessionContext('XUser')20 DECLARE @ElementCount int21 DECLARE @ElementIndex int22 DECLARE @MaxWaitTimeForMainOperation float = 5.023 SET XACT_ABORT OFF24 BEGIN TRY25 SELECT @IsCreatePendingChange = sign(t.PendingChangeBehavior & 0x01)26 FROM DialogTable t27 WHERE28 t.TableName = @TargetTable29 SELECT30 @Maske = dbo.QBM_FCVBinaryToString(dbo.QBM_FGIBitPatternXOrigin('|inherit|', 0),31 0)32 SELECT33 @ExistsXIsInEffect = dbo.QBM_FGIColumnExists(@TargetTable,34 'XIsInEffect')35 SELECT36 @ExistsXdate = dbo.QBM_FGIColumnExists(@TargetTable,37 'XDateInserted')38 IF isnull(@RestrictionClause,39 '') = ''40 BEGIN41 SELECT @RestrictionClause_intern = ''42 END43 ELSE44 BEGIN45 SELECT46 @RestrictionClause_intern = CONCAT(' and ( ',47 @RestrictionClause,48 ' ) ')49 END50 SELECT51 @SQLPattern = CONCAT(N '52 if exists (select top 1 1 53 from #QBMDeltaOrigin o54 where o.XOrigin > 055 )56 begin57 update ',58 @TargetTable,59 '60 set XOrigin = x.XOrigin',61 CASE @ExistsXIsInEffect62 WHEN 1 THEN63 '64 , XIsInEffect = x.XIsInEffect'65 ELSE ''66 END,67 CASE @ExistsXdate68 WHEN 1 THEN69 '70 , XDateUpdated = GetUtcDate()71 , XUserUpdated = ''' + OBJECT_NAME(@@procid) + ''''72 ELSE ''73 END,74 '75 from ',76 @TargetTable,77 ' y join #QBMDeltaOrigin x on y.',78 @ElementColumn,79 ' = x.Element80 and y.',81 @AssignedElementColumn,82 ' = x.AssignedElement83 and x.GenProcID = ''@GenProcID''84 and x.XOrigin > 085 where (y.XOrigin <> x.XOrigin',86 CASE @ExistsXIsInEffect87 WHEN 1 THEN88 '89 or y.XIsInEffect <> x.XIsInEffect'90 ELSE ''91 END,92 ' )93 ',94 @RestrictionClause_intern,95 '96 end97')98 IF @IsCreatePendingChange = 199 BEGIN100 SELECT101 @SQLPattern = CONCAT(@SQLPattern,102 'if exists (select top 1 1 103 from #QBMDeltaOrigin o104 where o.XOrigin = 0105 )106 begin107 update ',108 @TargetTable,109 '110 set XOrigin = 0',111 CASE @ExistsXIsInEffect112 WHEN 1 THEN113 '114 , XIsInEffect = 0'115 ELSE ''116 END,117 CASE @ExistsXdate118 WHEN 1 THEN119 '120 , XDateUpdated = GetUtcDate()121 , XUserUpdated = ''' + OBJECT_NAME(@@procid) + ''''122 ELSE ''123 END,124 '125 from ',126 @TargetTable,127 ' y join #QBMDeltaOrigin x on y.',128 @ElementColumn,129 ' = x.Element130 and y.',131 @AssignedElementColumn,132 ' = x.AssignedElement133 and x.GenProcID = ''@GenProcID''134 and x.XOrigin = 0135 where (y.XOrigin & ',136 @maske,137 ' > 0 )138 ',139 @RestrictionClause_intern,140 '141 end 142 ')143 END144 ELSE145 BEGIN146 SELECT147 @SQLPattern = CONCAT(@SQLPattern,148 'if exists (select top 1 1 149 from #QBMDeltaOrigin o150 where o.XOrigin = 0151 )152 begin153 update ',154 @TargetTable,155 '156 set XOrigin = 0 ',157 CASE @ExistsXdate158 WHEN 1 THEN159 '160 , XDateUpdated = GetUtcDate()161 , XUserUpdated = ''' + OBJECT_NAME(@@procid) + ''''162 ELSE ''163 END,164 ' from ',165 @TargetTable,166 ' y join #QBMDeltaOrigin x on y.',167 @ElementColumn,168 ' = x.Element169 and y.',170 @AssignedElementColumn,171 ' = x.AssignedElement172 and x.GenProcID = ''@GenProcID''173 and x.XOrigin = 0174-- where (y.XOrigin > 0 )175 ',176 @RestrictionClause_intern,177 '178 end 179 ')180 END181 IF @DebugSwitch > 0182 BEGIN183 print @sqlpattern184 END185 DECLARE @GenProcIDs_CounOrigin QBM_YCursorBuffer186 INSERT INTO @GenProcIDs_CounOrigin(UID1)187 SELECT188 DISTINCT d.GenProcID189 FROM #QBMDeltaOrigin d190 SELECT @ElementCount = @@ROWCOUNT191 SELECT @ElementIndex = 1192 WHILE @ElementIndex <= @ElementCount193 BEGIN194 SELECT TOP 1 @GenProcID = bu.UID1195 FROM @GenProcIDs_CounOrigin bu196 WHERE197 bu.ElementIndex = @ElementIndex198 EXEC QBM_PSessionContextSet 'GenProcID',199 @GenProcID200 SELECT201 @SQLCmd = REPLACE(@SQLPattern,202 '@GenProcID',203 @GenProcID)204 IF @DebugSwitch > 0205 BEGIN206 print @SQLCmd207 END208 EXEC QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @SQLcmd,209 @LockTimeout_ms = DEFAULT,210 @MaxWaitTimeForLock_s = @MaxWaitTimeForMainOperation,211 @ProcIDForJournal = DEFAULT,212 @HandleErrorSilent = 0213 SELECT @ElementIndex += 1214 END215 END TRY216 BEGIN CATCH217 EXEC QBM_PSessionErrorAdd DEFAULT218 DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()219 RAISERROR(@Rethrow,220 18,221 1)222 WITH NOWAIT223 END CATCH224 endLabel:225 EXEC QBM_PSessionContextSet 'GenProcID',226 @GenProcID_R227 EXEC QBM_PSessionContextSet 'XUser',228 @XUser_R229 RETURN230END
Open raw exported source
1 create procedure QBM_PMNTableOriginUpdate (@TargetTable varchar(30) , @ElementColumn varchar(30) , @AssignedElementColumn varchar(30) , @RestrictionClause2 nvarchar(max) = '' ) as begin declare @GenProcID varchar(38) declare @SQLCmd nvarchar(max) declare @SQLPattern nvarchar(max) declare @ExistsXIsInEffect3 bit = 0 declare @ExistsXdate bit = 0 declare @RestrictionClause_intern nvarchar(max) declare @DebugSwitch int = 0 declare @IsCreatePendingChange bit =4 0 declare @Maske varchar(64) declare @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext('') declare @XUser_R nvarchar(64) = dbo.QBM_FGISessionContext5('XUser') declare @ElementCount int declare @ElementIndex int declare @MaxWaitTimeForMainOperation float = 5.0 SET XACT_ABORT OFF BEGIN TRY select @IsCreatePendingChange6 = sign(t.PendingChangeBehavior & 0x01) from DialogTable t where t.TableName = @TargetTable select @Maske = dbo.QBM_FCVBinaryToString( dbo.QBM_FGIBitPatternXOrigin7('|inherit|', 0), 0) select @ExistsXIsInEffect = dbo.QBM_FGIColumnExists(@TargetTable, 'XIsInEffect') select @ExistsXdate = dbo.QBM_FGIColumnExists(@TargetTable8, 'XDateInserted') if isnull (@RestrictionClause, '') = '' begin select @RestrictionClause_intern = '' end else begin select @RestrictionClause_intern 9= concat(' and ( ' , @RestrictionClause , ' ) ') end select @SQLPattern = concat(N'10 if exists (select top 1 1 11 from #QBMDeltaOrigin o12 where o.XOrigin > 013 )14 begin15 update '16 , @TargetTable , '17 set XOrigin = x.XOrigin' , case @ExistsXIsInEffect when 1 then '18 , XIsInEffect = x.XIsInEffect' else '' end , case @ExistsXdate19 when 1 then '20 , XDateUpdated = GetUtcDate()21 , XUserUpdated = ''' + OBJECT_NAME(@@procid) + '''' else '' end , '22 from ' , @TargetTable , ' y join #QBMDeltaOrigin x on y.'23 , @ElementColumn , ' = x.Element24 and y.' , @AssignedElementColumn , ' = x.AssignedElement25 and x.GenProcID = ''@GenProcID''26 and x.XOrigin > 027 where (y.XOrigin <> x.XOrigin'28 , case @ExistsXIsInEffect when 1 then '29 or y.XIsInEffect <> x.XIsInEffect' else '' end , ' )30 ' , @RestrictionClause_intern , '31 end32' ) if @IsCreatePendingChange33 = 1 begin select @SQLPattern = concat(@SQLPattern , 'if exists (select top 1 1 34 from #QBMDeltaOrigin o35 where o.XOrigin = 036 )37 begin38 update '39 , @TargetTable , '40 set XOrigin = 0' , case @ExistsXIsInEffect when 1 then '41 , XIsInEffect = 0' else '' end , case @ExistsXdate when 1 then '42 , XDateUpdated = GetUtcDate()43 , XUserUpdated = '''44 + OBJECT_NAME(@@procid) + '''' else '' end , '45 from ' , @TargetTable , ' y join #QBMDeltaOrigin x on y.' , @ElementColumn , ' = x.Element46 and y.'47 , @AssignedElementColumn , ' = x.AssignedElement48 and x.GenProcID = ''@GenProcID''49 and x.XOrigin = 050 where (y.XOrigin & '51 , @maske , ' > 0 )52 ' , @RestrictionClause_intern , '53 end 54 ' ) end else begin select @SQLPattern = concat(@SQLPattern , 'if exists (select top 1 1 55 from #QBMDeltaOrigin o56 where o.XOrigin = 057 )58 begin59 update '60 , @TargetTable , '61 set XOrigin = 0 ' , case @ExistsXdate when 1 then '62 , XDateUpdated = GetUtcDate()63 , XUserUpdated = ''' + OBJECT_NAME(@@procid64) + '''' else '' end , ' from ' , @TargetTable , ' y join #QBMDeltaOrigin x on y.' , @ElementColumn , ' = x.Element65 and y.' , @AssignedElementColumn66 , ' = x.AssignedElement67 and x.GenProcID = ''@GenProcID''68 and x.XOrigin = 069-- where (y.XOrigin > 0 )70 ' , @RestrictionClause_intern71 , '72 end 73 ' ) end if @DebugSwitch > 0 begin print @sqlpattern end declare @GenProcIDs_CounOrigin QBM_YCursorBuffer insert into @GenProcIDs_CounOrigin74 (UID1) select distinct d.GenProcID from #QBMDeltaOrigin d select @ElementCount = @@ROWCOUNT select @ElementIndex = 1 while @ElementIndex <= @ElementCount75 begin select top 1 @GenProcID = bu.UID1 from @GenProcIDs_CounOrigin bu where bu.ElementIndex = @ElementIndex exec QBM_PSessionContextSet 'GenProcID', 76@GenProcID select @SQLCmd = REPLACE(@SQLPattern, '@GenProcID', @GenProcID) if @DebugSwitch > 0 begin print @SQLCmd end exec QBM_PExecuteSQLWithRetry_LLP77 @SQLStatement = @SQLcmd , @LockTimeout_ms = default , @MaxWaitTimeForLock_s = @MaxWaitTimeForMainOperation , @ProcIDForJournal = default , @HandleErrorSilent78 = 0 select @ElementIndex += 1 end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow79() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT END CATCH endLabel: exec QBM_PSessionContextSet 'GenProcID', @GenProcID_R exec QBM_PSessionContextSet 'XUser'80, @XUser_R return end 81