dbo.QBM_PBufferT_ProcessInsert

SQL_STORED_PROCEDURE

Created 2025-06-27T17:57:30.263 · modified 2026-04-14T23:14:36.527 · source: live DB sys.objects/sys.sql_expression_dependencies.

Open formatted source/search result

Parameters

NameTypeOutput
@ModuleNamevarcharno
@TableNamevarcharno

Referenced objects

SchemaObjectColumn/minorClass
DialogColumnOBJECT_OR_COLUMN
DialogTableOBJECT_OR_COLUMN
QBM_PJournalOBJECT_OR_COLUMN
QBM_PSessionErrorAddOBJECT_OR_COLUMN
QBM_VSchemaColumnsOBJECT_OR_COLUMN
QBM_VStartupTablesOBJECT_OR_COLUMN
QBM_YCursorBufferTYPE
dboQBM_FGIColumnDataLenOBJECT_OR_COLUMN
dboQBM_FGIColumnDataTypeOBJECT_OR_COLUMN
dboQBM_FGIColumnExistsOBJECT_OR_COLUMN
dboQBM_FGISessionErrorRethrowOBJECT_OR_COLUMN
dboQBM_FSQCVBufferToColumnOBJECT_OR_COLUMN
dboQBM_FSQIsNullClauseSetOBJECT_OR_COLUMN

Source excerpt

First extracted SQL definition lines from the exported source. Use the full source page for complete context.

Open full formatted source

1     create   procedure QBM_PBufferT_ProcessInsert ( @ModuleName varchar(3) , @TableName varchar(30)  ) as begin declare @cmd nvarchar(max) declare
2 @insertlist nvarchar(max) declare @SelectList nvarchar(max) declare @JoinList nvarchar(max) declare @Vortest nvarchar(max) declare @number int = 0 declare
3 @columnname varchar(30) declare @MissingColumnname varchar(30) declare @NumberTableSynonym nvarchar(64) declare @ColumnDatatype nvarchar(64) declare @ColumnDataMaxLen
4 int declare @countColumnsInRow int declare @RowsPerShot int declare @lauf int declare @XUser nvarchar(64) = object_name(@@procid) declare @DebugLevel 
5char(1) = 'W' declare @DebugSwitch int = 0 declare @columnPattern nvarchar(max) declare @ErrorMessage nvarchar(4000) declare @ErrorSeverity int declare
6 @ErrorState int declare @ElementBuffer QBM_YCursorBuffer declare @ElementCount int declare @ElementIndex int SET XACT_ABORT OFF BEGIN TRY select @countColumnsInRow
7 = count(distinct columnname) from #QBMBufferTransferOneTable  if @countColumnsInRow = 0 begin select @cmd = '#LDS#Table {0} not inserted, no Column content delivered|'
8 + @TableName + '|' exec QBM_PJournal @cmd, @@procid, 'D', @DebugLevel goto EndLabel end if not exists (select top 1 1 from QBM_VStartupTables su where
9 su.TableName = @TableName ) begin select @MissingColumnname = null select top 1 @MissingColumnname = x.ColumnName from ( select distinct bu.ColumnName
10 from #QBMBufferTransferOneTable bu  ) as x left outer join ( select columnname from DialogColumn c with (readpast) join DialogTable t with (readpast) 
11on c.UID_DialogTable = t.UID_DialogTable where t.TableName = @TableName ) as y on x.ColumnName = y.ColumnName where y.ColumnName is null if @MissingColumnname
12 > ' ' begin select @cmd = '#LDS#Table {0} not inserted because of missing ColumnDefinition {1}, processing module {2}|' + @TableName + '|' + @MissingColumnname
13 + '|' + @Modulename + '|' exec QBM_PJournal @cmd, @@procid, 'W', @DebugLevel goto EndLabel end end if @DebugSwitch > 0 begin print '@countColumnsInRow'
14 + str(@countColumnsInRow) end if @countColumnsInRow < 100  begin select @RowsPerShot = 400000 / @countColumnsInRow end else begin select @RowsPerShot 
15= 4000 end  select @columnPattern = N'
16		join ( select @ContentClause@ as @columnname@, bux.ObjectkeyOfRow as XObjectKey
17					from #QBMBufferTransferOneTable bux 
18					where bux.columnname = ''@columnname@''
19				) as @number@ on v000.XObjectKey = @number@.XObjectKey'
20 select @Vortest = N'
21declare @missingList QBM_YParameterList -- t a b l e (ObjectkeyOfRow varchar(138)  -->Parameter1
22
23inser'+'t into @missingList(Parameter1 /*ObjectkeyOfRow*/)
24select top '
25 + STR(@RowsPerShot) + ' y.ObjectKeyOfRow
26 from (
27		select ot.ObjectKeyOfRow -- , COUNT(*) as CountItems
28			from #QBMBufferTransferOneTable ot 
29			group by ot.ObjectKeyOfRow
30			having COUNT(*) =  '
31 + str(@countColumnsInRow) + '
32		) as y	
33		where Not exists (select top 1 1
34						 from ' + @TableName + ' x
35						 where x.XObjectKey = y.ObjectkeyOfRow
36						)
37
38'
39 select @insertlist = @Vortest + N'
40 if @@rowcount = 0
41  begin
42	goto EndLabel
43  end	
44  					
45Inser'+'t into ' + @TableName + ' (XObjectKey' select
46 @SelectList = N'
47	select v000.XObjectKey ' select @JoinList = N'
48from 
49 (
50	-- bestimmen aller einzufügenden Sätze
51	select Parameter1 /*ObjectkeyOfRow*/ as XObjectKey 
52		from @missingList
53	) as v000'
54   if @TableName in (select TableName from QBM_VStartupTables)  begin insert into @ElementBuffer(Ident1) select distinct bu.columnname from QBM_VSchemaColumns
55 cc join #QBMBufferTransferOneTable bu on cc.COLUMN_NAME = bu.columnname collate database_default where cc.TABLE_NAME = @TableName  and ( bu.HasContentFull
56 = 0 and isnull(bu.ContentShort, '') > ' ' or bu.HasContentFull = 1 and isnull(bu.ContentFull, '') > ' ' ) order by 1 end else begin insert into @ElementBuffer
57(Ident1) select distinct bu.columnname from dialogColumn cc with (readpast) join #QBMBufferTransferOneTable bu on cc.COLUMNNAME = bu.columnname join DialogTable
58 t with (readpast) on cc.UID_DialogTable = t.UID_DialogTable where t.TableName = @TableName  and ( bu.HasContentFull = 0 and isnull(bu.ContentShort, ''
59) > ' ' or bu.HasContentFull = 1 and isnull(bu.ContentFull, '') > ' ' ) order by 1 end select @ElementCount = count(*) from @ElementBuffer select @ElementIndex
60 = 1 while @ElementIndex <= @ElementCount begin select top 1 @ColumnName = bu.Ident1 from @ElementBuffer bu where bu.ElementIndex = @ElementIndex select
61 @number += 1 select @NumberTableSynonym = 'v' + right('00' + ltrim(str(@number)), 3) if @DebugSwitch > 0 begin print 'Spalte : ' + @columnname end select
62 @ColumnDatatype = dbo.QBM_FGIColumnDataType(@TableName , @columnname) select @ColumnDataMaxLen = dbo.QBM_FGIColumnDataLen(@TableName , @columnname) select
63 @insertlist = @insertlist + ', ' + @columnname select @SelectList = @SelectList + N'	
64			, ' + dbo.QBM_FSQIsNullClauseSet(@TableName , @columnname, @NumberTableSynonym
65) select @JoinList = @JoinList + replace(REPLACE(REPLACE(@columnPattern , '@ContentClause@', dbo.QBM_FSQCVBufferToColumn(@TableName , @columnname, N'bux'
66, 0)) , '@columnname@', @columnname) , '@number@', @NumberTableSynonym) select @ElementIndex += 1 end  if dbo.QBM_FGIColumnExists(@TableName , 'XUserInserted'
67) = 1 begin select @insertlist = @insertlist + ', XuserInserted, XUserUpdated, XDateInserted, XDateupdated' select @SelectList = @SelectList + ', ''' +
68 @xuser + ''', ''' + @xuser + ''', getutcdate(), getutcdate()' end   if dbo.QBM_FGIColumnExists(@TableName , 'XIsInEffect') = 1  and not exists (select
69 top 1 1 from #QBMBufferTransferOneTable bu where bu.ColumnName = 'XIsInEffect' ) begin select @insertlist = @insertlist + ', XIsInEffect' select @SelectList
70 = @SelectList + ', 1' end select @insertlist = @insertlist + ')' select @cmd = @insertlist + @SelectList + @JoinList + N'
71			EndLabel:
72			' if @DebugSwitch
73 > 0 begin print substring(@cmd, 1, 4000) print substring(@cmd, 4001, 4000) print substring(@cmd, 8001, 4000) print substring(@cmd, 12001, 4000) print 
74substring(@cmd, 16001, 4000) print substring(@cmd, 20001, 4000) end exec sp_executesql @Vortest select @lauf = @@ROWCOUNT  while @lauf > 0 begin begin 
75try exec sp_executesql @cmd select @lauf = @@ROWCOUNT end try begin catch select @lauf = 0 exec QBM_PSessionErrorAdd default, @cmd RAISERROR ('', 18, 1
76) WITH NOWAIT end catch end    END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow() 
77RAISERROR (@Rethrow, 18, 1) WITH NOWAIT END CATCH endLabel: end 
78

Module relation graph

Loading module relation graph…

Source-derived context

Generated from exported SQL module definitions plus read-only sandbox sys.objects/sys.parameters/sys.sql_expression_dependencies metadata. This is factual source evidence, not a semantic guess.

provenance: SQL definition export provenance: sandbox DB metadata modified: 2026-04-14T23:14:36.527

has TRY/CATCH error handling

Summary: calls QBM_PJournal, QBM_PSessionErrorAdd; writes INSERT into; reads/joins QBM_VStartupTables, DialogColumn, DialogTable, QBM_VSchemaColumns, dialogColumn

Declared parameters

ParameterTypeDirection
@ModuleNamevarchar(3)input
@TableNamevarchar(30)input

DML targets

INSERT into

Config/session

Config: None extracted.

Session: None extracted.

DBQueue/tasks

None extracted.

Temp tables / referenced variables

Temp: #QBMBufferTransferOneTable #LDS #Table

Variables: @ModuleName @TableName @cmd @insertlist @SelectList @JoinList @Vortest @number @columnname @MissingColumnname @NumberTableSynonym @ColumnDatatype @ColumnDataMaxLen @countColumnsInRow @RowsPerShot @lauf @XUser @procid @DebugLevel @DebugSwitch @columnPattern @ErrorMessage @ErrorSeverity @ErrorState @ElementBuffer @ElementCount @ElementIndex @Modulename @ContentClause @missingList @rowcount @ColumnName @xuser @ROWCOUNT @Rethrow

Referenced by / reverse dependencies

Generated from live DB metadata, FK rows, and exported SQL dependency/source extraction. This is factual linkage evidence, not inferred behavior.

Referencing objectRelationEvidence
dbo.QBM_PBufferT_ProcAll_Delta_iSQL expression dependencyOBJECT_OR_COLUMN
dbo.QBM_PBufferT_ProcessTableSQL expression dependencyOBJECT_OR_COLUMN
dbo.QBM_PBufferT_ProcAll_Delta_isource text referencehas TRY/CATCH error handling
dbo.QBM_PBufferT_ProcessTablesource text referencehas TRY/CATCH error handling