dbo.QBM_PTableAdd
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_FCVGUIDToModuleOwner source text reference
- references source dbo.QBM_FGIDBOwner source text reference
- references source dbo.QBM_FGISessionErrorRethrow source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
References
- dbo.QBM_FCVGUIDToModuleOwner
- dbo.QBM_FGIDBOwner
- dbo.QBM_FGISessionErrorRethrow
- dbo.QBM_PSessionErrorAdd
Referenced By
- No direct source references extracted.
Complete Source
1CREATE PROCEDURE QBM_PTableAdd(2 @TableName varchar(30),3 @CreateStmt nvarchar(max),4 @UID_DialogTable varchar(38) = NULL,5 @TableType nvarchar(1) = 'T'6)7AS8BEGIN9 DECLARE @OwnerDB varchar(3)10 DECLARE @OwnerTable varchar(3)11 DECLARE @ElementsToKeep int12 DECLARE @ViewsWithElementsToKeep QBM_YCursorBuffer13 DECLARE @ViewName varchar(30)14 DECLARE @ElementLast int15 DECLARE @ElementCount int16 DECLARE @ElementIndex int17 DECLARE @cmd nvarchar(max)18 DECLARE @XUser nvarchar(64) = object_name(@@procid)19 DECLARE @Xdate datetime = getutcdate()20 SET XACT_ABORT OFF21 BEGIN TRY22 IF NOT EXISTS(23 SELECT TOP 1 124 FROM sys.tables t25 WHERE26 t.name = @TableName)27 BEGIN28 EXEC sp_executesql @CreateStmt29 END30 IF @UID_DialogTable IS NULL31 BEGIN32 GOTO endLabel33 END34 IF NOT EXISTS(35 SELECT TOP 1 136 FROM sys.tables t37 WHERE38 t.name = 'DialogTable')39 BEGIN40 GOTO endLabel41 END42 SELECT @OwnerDB = dbo.QBM_FGIDBOwner()43 SELECT @OwnerTable = dbo.QBM_FCVGUIDToModuleOwner(@UID_DialogTable)44 SELECT @cmd = 'select name from sys.views where name like ''___[_]VElementsToKeep'''45 INSERT INTO @ViewsWithElementsToKeep(ObjectKey1)46 EXEC sp_executesql @cmd47 SELECT @ElementCount = @@ROWCOUNT48 SELECT @ElementIndex = @@IDENTITY - @ElementCount +149 SELECT @ElementLast = @@IDENTITY50 SELECT @ElementsToKeep = 051 WHILE @ElementIndex <= @ElementLast AND @ElementsToKeep = 052 BEGIN53 SELECT TOP 1 @ViewName = v.ObjectKey154 FROM @ViewsWithElementsToKeep v55 WHERE56 v.ElementIndex = @ElementIndex57 SELECT @ElementsToKeep = 058 SELECT59 @cmd = 'select top 1 1 from ' + @ViewName + ' where SourceModule = ''' + @OwnerTable + ''''60 EXEC sp_executesql @cmd61 SELECT @ElementsToKeep = @@ROWCOUNT62 SELECT @ElementIndex += 163 END64 IF @OwnerTable <> 'CCC' AND @OwnerTable <> @OwnerDB AND @ElementsToKeep = 065 BEGIN66 GOTO EndLabel67 END68 IF NOT EXISTS(69 SELECT TOP 1 170 FROM DialogTable t71 WHERE72 t.UID_DialogTable = @UID_DialogTable)73 BEGIN74 INSERT INTO DialogTable(TableName,75 UID_DialogTable,76 TableType,77 XObjectKey,78 XDateInserted,79 XDateUpdated,80 XUserInserted,81 XUserUpdated)82 VALUES(@TableName,83 @UID_DialogTable,84 @TableType,85 '<Key><T>DialogTable</T><P>' + @UID_DialogTable + '</P></Key>',86 @Xdate,87 @Xdate,88 @XUser,89 @XUser)90 END91 END TRY92 BEGIN CATCH93 EXEC QBM_PSessionErrorAdd DEFAULT94 DECLARE @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow()95 RAISERROR(@Rethrow,96 18,97 1)98 WITH NOWAIT99 END CATCH100 endLabel:101 RETURN102END
Open raw exported source
1 create procedure QBM_PTableAdd (@TableName varchar(30) , @CreateStmt nvarchar(max) , @UID_DialogTable varchar(38) = null , @TableType nvarchar2(1) = 'T' ) as begin declare @OwnerDB varchar(3) declare @OwnerTable varchar(3) declare @ElementsToKeep int declare @ViewsWithElementsToKeep QBM_YCursorBuffer3 declare @ViewName varchar(30) declare @ElementLast int declare @ElementCount int declare @ElementIndex int declare @cmd nvarchar(max) declare @XUser nvarchar4(64) = object_name(@@procid) declare @Xdate datetime = getutcdate() SET XACT_ABORT OFF BEGIN TRY if not exists (select top 1 1 from sys.tables t where 5t.name = @TableName ) begin exec sp_executesql @CreateStmt end if @UID_DialogTable is null begin goto endLabel end if not exists (select top 1 1 from 6sys.tables t where t.name = 'DialogTable' ) begin goto endLabel end select @OwnerDB = dbo.QBM_FGIDBOwner() select @OwnerTable = dbo.QBM_FCVGUIDToModuleOwner7(@UID_DialogTable) select @cmd = 'select name from sys.views where name like ''___[_]VElementsToKeep''' insert into @ViewsWithElementsToKeep (ObjectKey18) exec sp_executesql @cmd select @ElementCount = @@ROWCOUNT select @ElementIndex = @@IDENTITY - @ElementCount +1 select @ElementLast = @@IDENTITY select9 @ElementsToKeep = 0 while @ElementIndex <= @ElementLast and @ElementsToKeep = 0 begin select top 1 @ViewName = v.ObjectKey1 from @ViewsWithElementsToKeep10 v where v.ElementIndex = @ElementIndex select @ElementsToKeep = 0 select @cmd = 'select top 1 1 from ' + @ViewName + ' where SourceModule = ''' + @OwnerTable11 + '''' exec sp_executesql @cmd select @ElementsToKeep = @@ROWCOUNT select @ElementIndex += 1 end if @OwnerTable <> 'CCC' and @OwnerTable <> @OwnerDB and12 @ElementsToKeep = 0 begin goto EndLabel end if not exists (select top 1 1 from DialogTable t where t.UID_DialogTable = @UID_DialogTable ) begin insert13 into DialogTable( TableName, UID_DialogTable, TableType, XObjectKey , XDateInserted, XDateUpdated, XUserInserted, XUserUpdated ) values ( @TableName, 14@UID_DialogTable, @TableType, '<Key><T>DialogTable</T><P>' + @UID_DialogTable + '</P></Key>' , @Xdate, @Xdate, @XUser, @XUser ) end END TRY BEGIN CATCH15 exec QBM_PSessionErrorAdd default declare @Rethrow varchar(1000) = dbo.QBM_FGISessionErrorRethrow() RAISERROR (@Rethrow, 18, 1) WITH NOWAIT END CATCH 16endLabel: return end 17