dbo.QBM_PTElementsReferenced_I
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_PSessionErrorAdd source text reference
Complete Source
1CREATE PROCEDURE QBM_PTElementsReferenced_I(2 @StartElements QBM_YParameterList READONLY,3 @SameModule BIT = 1,4 @TopDown BIT = 1,5 @ExcludeDS BIT = 06)7AS8BEGIN9 DECLARE @Lauf int10 DECLARE @SQLCmdInsert nvarchar(max)11 DECLARE @SQLCmdUpdate nvarchar(max)12 DECLARE @SQLCmdPre nvarchar(max)13 DECLARE @IsPreprocessing BIT = 114 DECLARE @Message nvarchar(1000)15 DECLARE @SortOrder int = 016 DECLARE @DebugSwitch int = 017 DECLARE @ModuleName varchar(3)18 DECLARE @ElementLast int19 DECLARE @ElementBufferMulti TABLE(ElementIndex int identity primary key nonclustered,20 SQLCmdInsert nvarchar(max) collate database_default,21 SQLCmdUpdate nvarchar(max) collate database_default,22 SQLCmdPre nvarchar(max) collate database_default)23 DECLARE @ElementCount int24 DECLARE @ElementIndex int25 SET XACT_ABORT OFF26 BEGIN TRY27 SET nocount28 ON29 SELECT TOP 1 @ModuleName =30 LEFT(t.UID_DialogTable,31 3)32 FROM @StartElements x33 JOIN DialogTable t34 ON x.Parameter1 LIKE '<Key><T>' + t.TableName + '</T>%'35 IF object_id(N 'tempdb..#QBMCollectorReferenceElements') IS NULL36 BEGIN37 SELECT @Message = '#LDS#Worktable #QBMCollectorReferenceElements missing|'38 RAISERROR(@message,39 18,40 1)41 WITH nowait42 END43 truncate TABLE #QBMCollectorReferenceElements44 INSERT INTO #QBMCollectorReferenceElements(TableName,45 Objectkey,46 XMarkedForDeletion,47 SortOrder,48 IsInsertRestrict,49 IsDeleteRestrict)50 SELECT51 t.TableName,52 e.Parameter1,53 NULL,54 0,55 0,56 057 FROM @StartElements e58 JOIN DialogTable t59 ON e.Parameter1 LIKE '<Key><T>' + t.TableName + '</T>%'60 JOIN DialogColumn c161 ON t.UID_DialogTable = c1.UID_DialogTable AND c1.ColumnName = 'XObjectKey'62 JOIN DialogColumn c263 ON t.UID_DialogTable = c2.UID_DialogTable AND c2.ColumnName = 'XMarkedForDeletion'64 WHILE EXISTS(65 SELECT TOP 1 166 FROM #QBMCollectorReferenceElements re67 WHERE68 re.XMarkedForDeletion IS NULL)69 BEGIN70 SELECT71 TOP 1 @SQLCmdUpdate = '72 update #QBMCollectorReferenceElements 73 set XMarkedForDeletion = isnull(s.XmarkedFordeletion, 0)74 from #QBMCollectorReferenceElements re left outer join '75 + e.TableName + ' s on re.ObjectKey = s.XObjectKey76 where re.TableName = ''' + e.TableName + ''''77 FROM #QBMCollectorReferenceElements e78 WHERE79 e.XmarkedFordeletion IS NULL80 IF @DebugSwitch > 081 BEGIN82 print @SQLCmdupdate83 END84 EXEC sp_executesql @SQLCmdUpdate85 END86 IF @DebugSwitch > 087 BEGIN88 SELECT *89 FROM #QBMCollectorReferenceElements90 ORDER BY SortOrder91 END92 SELECT @Lauf = 193 WHILE @Lauf > 094 BEGIN95 SELECT @Lauf = 096 IF @TopDown = 197 BEGIN98 DELETE @ElementBufferMulti99 INSERT INTO @ElementBufferMulti(SQLCmdInsert,100 SQLCmdUpdate,101 SQLCmdPre)102 SELECT103 DISTINCT 'select ''' + rq.ChildTable + ''', y.XObjectKey, ' + CASE104 WHEN rq.XIsInEffectColumn > ' ' THEN105 ' (y.XMarkedForDeletion | (x.XMarkedForDeletion * ( 1 ^ y.XIsInEffect))) '106 ELSE 'y.XMarkedForDeletion '107 END + ', %SortOrder%, ' + rq.IsInsertRestrict+ ', ' + rq.IsDeleteRestrict + '108 from ' + rq.ParentTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey109 join '110 + rq.ChildTable + ' y on x.' + rq.ParentColumn + ' = y.' + rq.ChildColumn + '111 where Not exists (select top 1 1112 from #QBMCollectorReferenceElements e113 where e.Objectkey = y.XObjectKey114 )115 '116 ,117 'update #QBMCollectorReferenceElements118 set SortOrder = %SortOrder%119 , IsInsertRestrict = ' + rq.IsInsertRestrict+ '120 , IsDeleteRestrict = '121 + rq.IsDeleteRestrict + '122 from ' + rq.childTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey123 join ' + rq.parentTable124 + ' y on x.' + rq.childColumn + ' = y.' + rq.parentColumn + '125 where exists (select top 1 1126 from #QBMCollectorReferenceElements e127 where e.Objectkey = y.XObjectKey128 )129 and w.SortOrder = 0 -- was initial130 '131 ,132 '133 update #QBMCollectorReferenceElements134 set SortOrder = e.SortOrder +1135 -- select w.objectkey, w.SortOrder, e.objectkey, e.SortOrder136 from '137 + rq.childTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey138 join ' + rq.parentTable + ' y on x.' + rq.childColumn139 + ' = y.' + rq.parentColumn + '140 join (select * 141 from #QBMCollectorReferenceElements142 ) as e on e.Objectkey = y.XObjectKey143 where w.SortOrder <= e.SortOrder144 '145 FROM(146 SELECT147 r.ChildTable,148 r.ParentTable,149 r.ParentColumn,150 r.ChildColumn,151 cxi.ColumnName AS XIsInEffectColumn,152 CASE r.ChildRestriction153 WHEN 'IR' THEN154 '1'155 ELSE '0'156 END AS IsInsertRestrict,157 CASE r.ParentRestriction158 WHEN 'DR' THEN159 '1'160 ELSE '0'161 END AS IsDeleteRestrict162 FROM QBM_VQBMRelation r163 JOIN #QBMCollectorReferenceElements w164 ON r.ParentTable = w.TableName165 JOIN DialogTable t166 ON r.UID_DialogTableChild = t.UID_DialogTable AND t.TableType IN('T', 'V', 'M')167 LEFT168 OUTER169 JOIN DialogColumn cxi170 ON cxi.UID_DialogTable = t.UID_DialogTable AND cxi.ColumnName = 'XIsInEffect'171 WHERE172 (173 LEFT(r.UID_DialogTableChild, 3) = @ModuleName OR @SameModule = 0) AND(r.ParentRestriction <> 'DS' OR @ExcludeDS = 0) AND EXISTS(174 SELECT TOP 1 1175 FROM DialogColumn c1176 WHERE177 r.UID_DialogTableChild = c1.UID_DialogTable AND c1.ColumnName = 'XObjectKey') AND EXISTS(178 SELECT TOP 1 1179 FROM DialogColumn c1180 WHERE181 r.UID_DialogTableChild = c1.UID_DialogTable AND c1.ColumnName = 'XMarkedForDeletion')) AS rq182 SELECT @ElementCount = @@ROWCOUNT183 SELECT @ElementIndex = @@IDENTITY - @ElementCount +1184 SELECT @ElementLast = @@IDENTITY185 END186 ELSE187 BEGIN188 DELETE @ElementBufferMulti189 INSERT INTO @ElementBufferMulti(SQLCmdInsert,190 SQLCmdUpdate,191 SQLCmdPre)192 SELECT193 DISTINCT 'select distinct ''' + rq.ParentTable + ''', y.XObjectKey, y.XMarkedForDeletion, %SortOrder%, ' + rq.IsInsertRestrict+ ', ' +194 rq.IsDeleteRestrict + '195 from ' + rq.ChildTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey196 join ' + rq.ParentTable197 + ' y on x.' + rq.ChildColumn + ' = y.' + rq.ParentColumn + '198 where Not exists (select top 1 1199 from #QBMCollectorReferenceElements e200 where e.Objectkey = y.XObjectKey201 )202 '203 ,204 'update #QBMCollectorReferenceElements205 set SortOrder = %SortOrder%206 , IsInsertRestrict = ' + rq.IsInsertRestrict+ '207 , IsDeleteRestrict = '208 + rq.IsDeleteRestrict + '209 from ' + rq.ParentTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey210 join ' +211 rq.ChildTable + ' y on x.' + rq.ParentColumn + ' = y.' + rq.ChildColumn + '212 where exists (select top 1 1213 from #QBMCollectorReferenceElements e214 where e.Objectkey = y.XObjectKey215 )216 and w.SortOrder = 0 -- was initial217 '218 ,219 '220 update #QBMCollectorReferenceElements221 set SortOrder = e.SortOrder +1222 from ' + rq.ParentTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey223 join '224 + rq.ChildTable + ' y on x.' + rq.ParentColumn + ' = y.' + rq.ChildColumn + '225 join (select * 226 from #QBMCollectorReferenceElements227 ) as e on e.Objectkey = y.XObjectKey228 and w.SortOrder <= e.SortOrder229 '230 FROM(231 SELECT232 r.ChildTable,233 r.ParentTable,234 r.ParentColumn,235 r.ChildColumn,236 CASE r.ChildRestriction237 WHEN 'IR' THEN238 '1'239 ELSE '0'240 END AS IsInsertRestrict,241 CASE r.ParentRestriction242 WHEN 'DR' THEN243 '1'244 ELSE '0'245 END AS IsDeleteRestrict246 FROM QBM_VQBMRelation r247 JOIN #QBMCollectorReferenceElements w248 ON r.ChildTable = w.TableName249 JOIN DialogTable t250 ON r.UID_DialogTableParent = t.UID_DialogTable AND t.TableType IN('T', 'V', 'M')251 WHERE252 (253 LEFT(r.UID_DialogTableParent, 3) = @ModuleName OR @SameModule = 0) AND(r.ParentRestriction <> 'DS' OR @ExcludeDS = 0) AND EXISTS(254 SELECT TOP 1 1255 FROM DialogColumn c1256 WHERE257 r.UID_DialogTableParent = c1.UID_DialogTable AND c1.ColumnName = 'XObjectKey') AND EXISTS(258 SELECT TOP 1 1259 FROM DialogColumn c1260 WHERE261 r.UID_DialogTableParent = c1.UID_DialogTable AND c1.ColumnName = 'XMarkedForDeletion')) AS rq262 SELECT @ElementCount = @@ROWCOUNT263 SELECT @ElementIndex = @@IDENTITY - @ElementCount +1264 SELECT @ElementLast = @@IDENTITY265 END266 WHILE @ElementIndex <= @ElementLast267 BEGIN268 IF @IsPreprocessing = 1269 BEGIN270 SELECT TOP 1 @SQLCmdPre = bu.SQLCmdPre271 FROM @ElementBufferMulti bu272 WHERE273 bu.ElementIndex = @ElementIndex274 IF @DebugSwitch > 0275 BEGIN276 print @SQLCmdpre277 END278 EXEC sp_executesql @SQLCmdPre279 SELECT @Lauf += @@ROWCOUNT280 END281 ELSE282 BEGIN283 SELECT284 TOP 1 @SQLCmdInsert = bu.SQLCmdInsert,285 @SQLCmdUpdate = bu.SQLCmdUpdate286 FROM @ElementBufferMulti bu287 WHERE288 bu.ElementIndex = @ElementIndex289 SELECT290 @SQLCmdInsert = REPLACE(@SQLCmdInsert,291 '%SortOrder%',292 str(@SortOrder))293 SELECT294 @SQLCmdUpdate = REPLACE(@SQLCmdUpdate,295 '%SortOrder%',296 str(@SortOrder))297 IF @DebugSwitch > 0298 BEGIN299 print @SQLCmdInsert print @SQLCmdUpdate300 END301 INSERT INTO #QBMCollectorReferenceElements(TableName,302 Objectkey,303 XMarkedForDeletion,304 SortOrder,305 IsInsertRestrict,306 IsDeleteRestrict)307 EXEC sp_executesql @SQLCmdInsert308 SELECT @Lauf += @@ROWCOUNT309 EXEC sp_executesql @SQLCmdupdate310 SELECT @Lauf += @@ROWCOUNT311 SELECT @SortOrder += 1312 END313 SELECT @ElementIndex += 1314 END315 IF @DebugSwitch > 0316 BEGIN317 SELECT *318 FROM #QBMCollectorReferenceElements319 ORDER BY SortOrder320 END321 IF @Lauf = 0 AND @IsPreprocessing = 1322 BEGIN323 SELECT @IsPreprocessing = 0324 SELECT @Lauf = 1325 SELECT TOP 1 @SortOrder = max(e.SortOrder) +1326 FROM #QBMCollectorReferenceElements e327 END328 END329 IF @DebugSwitch > 0330 BEGIN331 print '############### sortierte Ausgabe ###############'332 SELECT333 ObjectKey,334 SortOrder335 FROM #QBMCollectorReferenceElements336 ORDER BY 2,337 1338 END339 END TRY340 BEGIN CATCH341 EXEC QBM_PSessionErrorAdd DEFAULT342 DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()343 RAISERROR(@Rethrow,344 18,345 1)346 WITH NOWAIT347 END CATCH348 endLabel:349END
Open raw exported source
1 create procedure QBM_PTElementsReferenced_I (@StartElements QBM_YParameterList readonly , @SameModule bit = 1 , @TopDown bit = 1 , @ExcludeDS2 bit = 0 ) as begin declare @Lauf int declare @SQLCmdInsert nvarchar(max) declare @SQLCmdUpdate nvarchar(max) declare @SQLCmdPre nvarchar(max) declare3 @IsPreprocessing bit = 1 declare @Message nvarchar(1000) declare @SortOrder int = 0 declare @DebugSwitch int = 0 declare @ModuleName varchar(3) declare4 @ElementLast int declare @ElementBufferMulti table ( ElementIndex int identity primary key nonclustered , SQLCmdInsert nvarchar(max) collate database_default5 , SQLCmdUpdate nvarchar(max) collate database_default , SQLCmdPre nvarchar(max) collate database_default ) declare @ElementCount int declare @ElementIndex6 int SET XACT_ABORT OFF BEGIN TRY set nocount on select top 1 @ModuleName = left(t.UID_DialogTable, 3) from @StartElements x join DialogTable t on x.Parameter17 like '<Key><T>' + t.TableName + '</T>%' if object_id(N'tempdb..#QBMCollectorReferenceElements') is null begin select @Message = '#LDS#Worktable #QBMCollectorReferenceElements missing|'8 raiserror (@message, 18, 1) with nowait end truncate table #QBMCollectorReferenceElements insert into #QBMCollectorReferenceElements(TableName, Objectkey9, XMarkedForDeletion, SortOrder, IsInsertRestrict, IsDeleteRestrict) select t.TableName, e.Parameter1, null , 0,0,0 from @StartElements e join DialogTable10 t on e.Parameter1 like '<Key><T>' + t.TableName + '</T>%' join DialogColumn c1 on t.UID_DialogTable = c1.UID_DialogTable and c1.ColumnName = 'XObjectKey'11 join DialogColumn c2 on t.UID_DialogTable = c2.UID_DialogTable and c2.ColumnName = 'XMarkedForDeletion' while exists (select top 1 1 from #QBMCollectorReferenceElements12 re where re.XMarkedForDeletion is null ) begin select top 1 @SQLCmdUpdate = '13 update #QBMCollectorReferenceElements 14 set XMarkedForDeletion = isnull(s.XmarkedFordeletion, 0)15 from #QBMCollectorReferenceElements re left outer join '16 + e.TableName + ' s on re.ObjectKey = s.XObjectKey17 where re.TableName = ''' + e.TableName + '''' from #QBMCollectorReferenceElements e where e.XmarkedFordeletion18 is null if @DebugSwitch > 0 begin print @SQLCmdupdate end exec sp_executesql @SQLCmdUpdate end if @DebugSwitch > 0 begin select * from #QBMCollectorReferenceElements19 order by SortOrder end select @Lauf = 1 while @Lauf > 0 begin select @Lauf = 0 if @TopDown = 1 begin delete @ElementBufferMulti insert into @ElementBufferMulti20 (SQLCmdInsert, SQLCmdUpdate, SQLCmdPre) select distinct 'select ''' + rq.ChildTable + ''', y.XObjectKey, ' + case when rq.XIsInEffectColumn > ' ' then21 ' (y.XMarkedForDeletion | (x.XMarkedForDeletion * ( 1 ^ y.XIsInEffect))) ' else 'y.XMarkedForDeletion ' end + ', %SortOrder%, ' + rq.IsInsertRestrict+22 ', ' + rq.IsDeleteRestrict + '23 from ' + rq.ParentTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey24 join ' + rq.ChildTable25 + ' y on x.' + rq.ParentColumn + ' = y.' + rq.ChildColumn + '26 where Not exists (select top 1 127 from #QBMCollectorReferenceElements e28 where e.Objectkey = y.XObjectKey29 )30 '31 , 'update #QBMCollectorReferenceElements32 set SortOrder = %SortOrder%33 , IsInsertRestrict = ' + rq.IsInsertRestrict+ '34 , IsDeleteRestrict = '35 + rq.IsDeleteRestrict + '36 from ' + rq.childTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey37 join ' + rq.parentTable38 + ' y on x.' + rq.childColumn + ' = y.' + rq.parentColumn + '39 where exists (select top 1 140 from #QBMCollectorReferenceElements e41 where e.Objectkey = y.XObjectKey42 )43 and w.SortOrder = 0 -- was initial44 '45 , '46 update #QBMCollectorReferenceElements47 set SortOrder = e.SortOrder +148 -- select w.objectkey, w.SortOrder, e.objectkey, e.SortOrder49 from '50 + rq.childTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey51 join ' + rq.parentTable + ' y on x.' + rq.childColumn52 + ' = y.' + rq.parentColumn + '53 join (select * 54 from #QBMCollectorReferenceElements55 ) as e on e.Objectkey = y.XObjectKey56 where w.SortOrder <= e.SortOrder57 '58 from ( select r.ChildTable, r.ParentTable, r.ParentColumn, r.ChildColumn, cxi.ColumnName as XIsInEffectColumn , case r.ChildRestriction when 'IR' then59 '1' else '0' end as IsInsertRestrict , case r.ParentRestriction when 'DR' then '1' else '0' end as IsDeleteRestrict from QBM_VQBMRelation r join #QBMCollectorReferenceElements60 w on r.ParentTable = w.TableName join DialogTable t on r.UID_DialogTableChild = t.UID_DialogTable and t.TableType in ('T', 'V', 'M') left outer join DialogColumn61 cxi on cxi.UID_DialogTable = t.UID_DialogTable and cxi.ColumnName = 'XIsInEffect' where (LEFT(r.UID_DialogTableChild, 3) = @ModuleName or @SameModule 62= 0 ) and (r.ParentRestriction <> 'DS' or @ExcludeDS = 0 ) and exists (Select top 1 1 from DialogColumn c1 where r.UID_DialogTableChild = c1.UID_DialogTable63 and c1.ColumnName = 'XObjectKey' ) and exists (Select top 1 1 from DialogColumn c1 where r.UID_DialogTableChild = c1.UID_DialogTable and c1.ColumnName64 = 'XMarkedForDeletion' ) ) as rq select @ElementCount = @@ROWCOUNT select @ElementIndex = @@IDENTITY - @ElementCount +1 select @ElementLast = @@IDENTITY65 end else begin delete @ElementBufferMulti insert into @ElementBufferMulti (SQLCmdInsert, SQLCmdUpdate, SQLCmdPre) select distinct 'select distinct '''66 + rq.ParentTable + ''', y.XObjectKey, y.XMarkedForDeletion, %SortOrder%, ' + rq.IsInsertRestrict+ ', ' + rq.IsDeleteRestrict + '67 from ' + rq.ChildTable68 + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey69 join ' + rq.ParentTable + ' y on x.' + rq.ChildColumn + ' = y.' + rq.ParentColumn70 + '71 where Not exists (select top 1 172 from #QBMCollectorReferenceElements e73 where e.Objectkey = y.XObjectKey74 )75 ', 'update #QBMCollectorReferenceElements76 set SortOrder = %SortOrder%77 , IsInsertRestrict = '78 + rq.IsInsertRestrict+ '79 , IsDeleteRestrict = ' + rq.IsDeleteRestrict + '80 from ' + rq.ParentTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey81 join '82 + rq.ChildTable + ' y on x.' + rq.ParentColumn + ' = y.' + rq.ChildColumn + '83 where exists (select top 1 184 from #QBMCollectorReferenceElements e85 where e.Objectkey = y.XObjectKey86 )87 and w.SortOrder = 0 -- was initial88 '89 , '90 update #QBMCollectorReferenceElements91 set SortOrder = e.SortOrder +192 from ' + rq.ParentTable + ' x join #QBMCollectorReferenceElements w on x.XObjectKey = w.Objectkey93 join '94 + rq.ChildTable + ' y on x.' + rq.ParentColumn + ' = y.' + rq.ChildColumn + '95 join (select * 96 from #QBMCollectorReferenceElements97 ) as e on e.Objectkey = y.XObjectKey98 and w.SortOrder <= e.SortOrder99 '100 from ( select r.ChildTable, r.ParentTable, r.ParentColumn, r.ChildColumn , case r.ChildRestriction when 'IR' then '1' else '0' end as IsInsertRestrict101 , case r.ParentRestriction when 'DR' then '1' else '0' end as IsDeleteRestrict from QBM_VQBMRelation r join #QBMCollectorReferenceElements w on r.ChildTable102 = w.TableName join DialogTable t on r.UID_DialogTableParent = t.UID_DialogTable and t.TableType in ('T', 'V', 'M') where (LEFT(r.UID_DialogTableParent103, 3) = @ModuleName or @SameModule = 0 ) and (r.ParentRestriction <> 'DS' or @ExcludeDS = 0 ) and exists (Select top 1 1 from DialogColumn c1 where r.UID_DialogTableParent104 = c1.UID_DialogTable and c1.ColumnName = 'XObjectKey' ) and exists (Select top 1 1 from DialogColumn c1 where r.UID_DialogTableParent = c1.UID_DialogTable105 and c1.ColumnName = 'XMarkedForDeletion' ) ) as rq select @ElementCount = @@ROWCOUNT select @ElementIndex = @@IDENTITY - @ElementCount +1 select @ElementLast106 = @@IDENTITY end while @ElementIndex <= @ElementLast begin if @IsPreprocessing = 1 begin select top 1 @SQLCmdPre = bu.SQLCmdPre from @ElementBufferMulti107 bu where bu.ElementIndex = @ElementIndex if @DebugSwitch > 0 begin print @SQLCmdpre end exec sp_executesql @SQLCmdPre select @Lauf += @@ROWCOUNT end 108else begin select top 1 @SQLCmdInsert = bu.SQLCmdInsert , @SQLCmdUpdate = bu.SQLCmdUpdate from @ElementBufferMulti bu where bu.ElementIndex = @ElementIndex109 select @SQLCmdInsert = REPLACE(@SQLCmdInsert, '%SortOrder%', str(@SortOrder)) select @SQLCmdUpdate = REPLACE(@SQLCmdUpdate, '%SortOrder%', str(@SortOrder110)) if @DebugSwitch > 0 begin print @SQLCmdInsert print @SQLCmdUpdate end insert into #QBMCollectorReferenceElements(TableName, Objectkey, XMarkedForDeletion111, SortOrder, IsInsertRestrict, IsDeleteRestrict) exec sp_executesql @SQLCmdInsert select @Lauf += @@ROWCOUNT exec sp_executesql @SQLCmdupdate select @Lauf112 += @@ROWCOUNT select @SortOrder += 1 end select @ElementIndex += 1 end if @DebugSwitch > 0 begin select * from #QBMCollectorReferenceElements order 113by SortOrder end if @Lauf = 0 and @IsPreprocessing = 1 begin select @IsPreprocessing = 0 select @Lauf = 1 select top 1 @SortOrder = max(e.SortOrder) +1114 from #QBMCollectorReferenceElements e end end if @DebugSwitch > 0 begin print '############### sortierte Ausgabe ###############' select ObjectKey, SortOrder115 from #QBMCollectorReferenceElements order by 2,1 end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow116() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT END CATCH endLabel: end 117