Back to OIM Explorer

dbo.QBM_PSQLCreate

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 3.385 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_FGIDBOwner source text reference
  • references source dbo.QBM_FSQRemoveComment source text reference
  • references source dbo.QBM_FSQRemoveComment_i source text reference
  • references source dbo.QBM_PExecuteSQLWithRetry_LLP source text reference
  • references source dbo.QBM_PFunctionDrop source text reference
  • references source dbo.QBM_PJournal source text reference
  • references source dbo.QBM_PProcedureDrop source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference
  • references source dbo.QBM_PTriggerDrop source text reference
  • references source dbo.QBM_PViewDrop source text reference
  • references source dbo.QBM_TUIndicator474488 source text reference

Complete Source

SQL181 lines
1CREATE PROCEDURE QBM_PSQLCreate(2  @ObjectName varchar(30),3  @ObjectType varchar(1),4  @ObjectCode nvarchar(max),5  @UnComment BIT = 1,6  @UnFormat BIT = 17)8AS9BEGIN10  DECLARE @DebugSwitch int = 011  DECLARE @DebugLevel char(1) = 'W'12  DECLARE @Message nvarchar(1000)13  DECLARE @MessageAppend nvarchar(100) = ' (' + @ObjectType + ') ' + @ObjectName14  DECLARE @ObjectCodeIntern nvarchar(max)15  SET XACT_ABORT OFF16  BEGIN TRY17    IF @UnComment = 1 AND dbo.QBM_FGIDBOwner() = 'CCC'18    BEGIN19      SELECT20        @ObjectCode = dbo.QBM_FSQRemoveComment_i(@ObjectCode,21        @UnFormat)22      IF @DebugSwitch > 023      BEGIN24        print substring(@objectCode,25        1,26        4000) print substring(@objectCode,27        4000,28        4000) print substring(@objectCode,29        8000,30        4000) print substring(@objectCode,31        12000,32        4000) print substring(@objectCode,33        16000,34        4000) print substring(@objectCode,35        20000,36        4000) print substring(@objectCode,37        24000,38        4000) print substring(@objectCode,39        28000,40        4000)41      END42    END43    SELECT @ObjectCodeIntern = @ObjectCode44    IF @ObjectType = 'P'45    BEGIN46      IF @DebugSwitch > 047      BEGIN48        IF EXISTS(49          SELECT TOP 1 150          FROM sys.procedures p51          WITH(readpast)52        WHERE53          p.name = @ObjectName)54        BEGIN55          SELECT @Message = 'Objekt zu löschen' + @MessageAppend56        END57        ELSE58        BEGIN59          SELECT @Message = 'Objekt nicht vorhanden' + @MessageAppend60        END61        EXEC QBM_PJournal @Message,62          @@PROCID,63        'D',64          @DebugLevel print @Message65      END66      IF @ObjectCodeIntern NOT LIKE 'create or alter%'67      BEGIN68        EXEC QBM_PProcedureDrop @ObjectName69      END70      GOTO CreateCode71    END72    IF @ObjectType = 'T'73    BEGIN74      IF @DebugSwitch > 075      BEGIN76        IF EXISTS(77          SELECT TOP 1 178          FROM sys.triggers p79          WITH(readpast)80        WHERE81          p.name = @ObjectName AND p.name != 'QBM_TUIndicator474488')82        BEGIN83          SELECT @Message = 'Objekt zu löschen' + @MessageAppend84        END85        ELSE86        BEGIN87          SELECT @Message = 'Objekt nicht vorhanden' + @MessageAppend88        END89        EXEC QBM_PJournal @Message,90          @@PROCID,91        'D',92          @DebugLevel print @Message93      END94      IF @ObjectCodeIntern NOT LIKE 'create or alter%'95      BEGIN96        EXEC QBM_PTriggerDrop @ObjectName97      END98      GOTO CreateCode99    END100    IF @ObjectType = 'F'101    BEGIN102      IF @DebugSwitch > 0103      BEGIN104        IF EXISTS(105          SELECT TOP 1 1106          FROM sys.objects p107          WITH(readpast)108        WHERE109          p.name = @ObjectName)110        BEGIN111          SELECT @Message = 'Objekt zu löschen' + @MessageAppend112        END113        ELSE114        BEGIN115          SELECT @Message = 'Objekt nicht vorhanden' + @MessageAppend116        END117        EXEC QBM_PJournal @Message,118          @@PROCID,119        'D',120          @DebugLevel print @Message121      END122      EXEC QBM_PFunctionDrop @ObjectName123      GOTO CreateCode124    END125    IF @ObjectType = 'V'126    BEGIN127      IF @DebugSwitch > 0128      BEGIN129        IF EXISTS(130          SELECT TOP 1 1131          FROM sys.objects p132          WITH(readpast)133        WHERE134          p.name = @ObjectName)135        BEGIN136          SELECT @Message = 'Objekt zu löschen' + @MessageAppend137        END138        ELSE139        BEGIN140          SELECT @Message = 'Objekt nicht vorhanden' + @MessageAppend141        END142        EXEC QBM_PJournal @Message,143          @@PROCID,144        'D',145          @DebugLevel print @Message146      END147      IF @ObjectCodeIntern NOT LIKE 'create or alter%'148      BEGIN149        EXEC QBM_PViewDrop @ObjectName150      END151      GOTO CreateCode152    END153    CreateCode:154    IF @ObjectCodeIntern > ' '155    BEGIN156      EXEC QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @ObjectCodeIntern,157        @LockTimeout_ms = DEFAULT,158        @MaxWaitTimeForLock_s = DEFAULT,159        @ProcIDForJournal = DEFAULT,160        @HandleErrorSilent = 0,161        @ExecuteWithTransact = 0162      IF @DebugSwitch > 0163      BEGIN164        SELECT @Message = 'Objekt angelegt' + @MessageAppend165        EXEC QBM_PJournal @Message,166          @@PROCID,167        'D',168          @DebugLevel169      END170    END171  END TRY172  BEGIN CATCH173    EXEC QBM_PSessionErrorAdd DEFAULT174    RAISERROR('',175    18,176    1)177      WITH NOWAIT178  END CATCH179  endLabel:180  RETURN181END
Open raw exported source
SQL · Raw23 lines
1   create   procedure QBM_PSQLCreate (@ObjectName varchar(30) , @ObjectType varchar(1)     , @ObjectCode nvarchar(max) , @UnComment bit = 1 , @UnFormat2 bit = 1 ) as begin declare @DebugSwitch int = 0 declare @DebugLevel char(1) = 'W' declare @Message nvarchar(1000) declare @MessageAppend nvarchar(100)3 = ' (' + @ObjectType + ') ' + @ObjectName  declare @ObjectCodeIntern nvarchar(max) SET XACT_ABORT OFF BEGIN TRY  if @UnComment = 1 and dbo.QBM_FGIDBOwner4() = 'CCC' begin select @ObjectCode = dbo.QBM_FSQRemoveComment_i(@ObjectCode, @UnFormat) if @DebugSwitch > 0 begin print substring(@objectCode, 1, 40005) print substring(@objectCode, 4000, 4000) print substring(@objectCode, 8000, 4000) print substring(@objectCode, 12000, 4000) print substring(@objectCode6, 16000, 4000) print substring(@objectCode, 20000, 4000) print substring(@objectCode, 24000, 4000) print substring(@objectCode, 28000, 4000) end end   7      select @ObjectCodeIntern = @ObjectCode if @ObjectType = 'P' begin if @DebugSwitch > 0 begin if exists (select top 1 1 from sys.procedures p with 8(readpast) where p.name = @ObjectName ) begin select @Message = 'Objekt zu löschen' + @MessageAppend end else begin select @Message = 'Objekt nicht vorhanden'9 + @MessageAppend end exec QBM_PJournal @Message, @@PROCID, 'D', @DebugLevel print @Message end if @ObjectCodeIntern not like 'create or alter%' begin 10exec QBM_PProcedureDrop @ObjectName end goto CreateCode end if @ObjectType = 'T' begin if @DebugSwitch > 0 begin if exists (select top 1 1 from sys.triggers11 p with (readpast) where p.name = @ObjectName and p.name != 'QBM_TUIndicator474488' ) begin select @Message = 'Objekt zu löschen' + @MessageAppend end 12else begin select @Message = 'Objekt nicht vorhanden' + @MessageAppend end exec QBM_PJournal @Message, @@PROCID, 'D', @DebugLevel print @Message end if13 @ObjectCodeIntern not like 'create or alter%' begin exec QBM_PTriggerDrop @ObjectName end goto CreateCode end if @ObjectType = 'F' begin if @DebugSwitch14 > 0 begin if exists (select top 1 1 from sys.objects p with (readpast) where p.name = @ObjectName ) begin select @Message = 'Objekt zu löschen' + @MessageAppend15 end else begin select @Message = 'Objekt nicht vorhanden' + @MessageAppend end exec QBM_PJournal @Message, @@PROCID, 'D', @DebugLevel print @Message end16   exec QBM_PFunctionDrop @ObjectName goto CreateCode end if @ObjectType = 'V' begin if @DebugSwitch > 0 begin if exists (select top 1 1 from sys.objects17 p with (readpast) where p.name = @ObjectName ) begin select @Message = 'Objekt zu löschen' + @MessageAppend end else begin select @Message = 'Objekt nicht vorhanden'18 + @MessageAppend end exec QBM_PJournal @Message, @@PROCID, 'D', @DebugLevel print @Message end if @ObjectCodeIntern not like 'create or alter%' begin 19exec QBM_PViewDrop @ObjectName end goto CreateCode end CreateCode: if @ObjectCodeIntern > ' ' begin exec QBM_PExecuteSQLWithRetry_LLP @SQLStatement = @ObjectCodeIntern20 , @LockTimeout_ms = default  , @MaxWaitTimeForLock_s = default , @ProcIDForJournal = default , @HandleErrorSilent = 0 , @ExecuteWithTransact = 0  if @DebugSwitch21 > 0 begin select @Message = 'Objekt angelegt' + @MessageAppend exec QBM_PJournal @Message, @@PROCID, 'D', @DebugLevel end end END TRY BEGIN CATCH exec22 QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH endLabel: return end 23