Back to OIM Explorer

dbo.QBM_PTElementsReferenced_I

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 9.596 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_FGISessionErrorRethrow source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference

Complete Source

SQL349 lines
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
SQL ยท Raw117 lines
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