Back to OIM Explorer

dbo.QBM_PTableAdd

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 2.349 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_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

Referenced By

  • No direct source references extracted.

Complete Source

SQL102 lines
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
SQL ยท Raw17 lines
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