Back to OIM Explorer

dbo.QER_TUOrgRoot

Database TriggerSQL_TRIGGERSandbox DB

Database Trigger on OrgRoot. bulk DBQueue insert -> QER-K-OrgROOT / QER_ZOrgRoot at line 12; References QBM_PDBQueueInsert_Bulk; Trigger parent table: OrgRoot

Source: sandbox-db sys.sql_modules

Source size: 1.880 characters

Interpretation

  • Database trigger. Treat parent table and enqueue/object-layer calls as the main relation points.
  • DBQueue relation detected. Follow the task procedure and referenced-by list for async processing.

Relations

  • bulk DBQueue insert -> QER-K-OrgROOT / QER_ZOrgRoot at line 12
  • References QBM_PDBQueueInsert_Bulk
  • Trigger parent table: OrgRoot

Typed Edges

  • queues DBQueue task QER_ZOrgRoot at line 12 bulk DBQueue insert -> QER-K-OrgROOT / QER_ZOrgRoot at line 12
  • trigger on table OrgRoot Trigger parent table: OrgRoot
  • references source dbo.QBM_FGISessionContext source text reference
  • references source dbo.QBM_PDBQueueInsert_Bulk source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference

Complete Source

SQL98 lines
1CREATE trigger QER_TUOrgRoot2  ON OrgRoot FOR3UPDATE NOT FOR Replication4AS5BEGIN6  BEGIN TRY7    IF EXISTS(8      SELECT TOP 1 19      FROM inserted)10    GOTO start11    IF EXISTS(12      SELECT TOP 1 113      FROM deleted)14    GOTO start15    RETURN start:16    DECLARE @GenProcID varchar(38)17    SELECT @GenProcID = dbo.QBM_FGISessionContext('')18    IF EXISTS(19      SELECT TOP 1 120      FROM OrgRoot r21      JOIN deleted d22        ON r.UID_OrgRoot = d.UID_OrgRoot23      WHERE24        d.IsTopDown <> r.IsTopDown AND d.UID_OrgRoot LIKE '___-V-%')25    BEGIN26      RAISERROR('#LDS#Direction of inheritance cannot be changed, because it''s a default role.|',27      18,28      2)29        WITH nowait30    END31    IF32    UPDATE(IsPersonAssignOnce)33    BEGIN34      IF EXISTS(35        SELECT TOP 1 136        FROM OrgRoot r37        JOIN deleted d38          ON r.UID_OrgRoot = d.UID_OrgRoot39        WHERE40          r.IsPersonAssignOnce = 1 AND d.UID_OrgRoot LIKE '___-V-%')41      BEGIN42        RAISERROR('#LDS#IsPersonAssignOnce cannot be set, because it''s a default role.|',43        18,44        2)45          WITH nowait46      END47    END48    IF49    UPDATE(IsPersonAssignOnce)50    BEGIN51      IF EXISTS(52        SELECT TOP 1 153        FROM OrgRoot r54        JOIN deleted d55          ON r.UID_OrgRoot = d.UID_OrgRoot56        WHERE57          r.IsPersonAssignOnce = 1 AND EXISTS(58        SELECT TOP 1 159        FROM PersonInBaseTree pib60        JOIN BaseTree b61          ON pib.UID_Org = b.UID_Org AND b.UID_OrgRoot = r.UID_OrgRoot62        GROUP BY pib.UID_Person63        HAVING count(*) > 1))64      BEGIN65        RAISERROR('#LDS#IsPersonAssignOnce cannot be set, because at least one person is assigned more than once.|',66        18,67        2)68          WITH nowait69      END70    END71    DECLARE @DBQueueElements_01 QBM_YDBQueueRaw72    INSERT INTO @DBQueueElements_01(object,73    subobject,74    genprocid)75    SELECT76      x.uid,77      NULL,78      @GenProcID79    FROM(80    SELECT r.UID_OrgRoot AS uid81    FROM OrgRoot r82    JOIN deleted d83      ON r.UID_OrgRoot = d.UID_OrgRoot84    WHERE85      d.IsTopDown <> r.IsTopDown AND d.UID_OrgRoot NOT LIKE '___-V-%') AS x86    EXEC QBM_PDBQueueInsert_bulk 'QER-K-OrgROOT',87      @DBQueueElements_0188  END TRY89  BEGIN CATCH90    EXEC QBM_PSessionErrorAdd DEFAULT91    RAISERROR('',92    18,93    1)94      WITH NOWAIT95  END CATCH96  ende:97  RETURN98END
Open raw exported source
SQL ยท Raw14 lines
1create   trigger QER_TUOrgRoot on OrgRoot  for UPDATE not for Replication as begin  BEGIN TRY if exists (select top 1 1 from inserted) goto start2 if exists (select top 1 1 from deleted) goto start return start: declare @GenProcID varchar(38) select @GenProcID = dbo.QBM_FGISessionContext('') if exists3 (select top 1 1 from OrgRoot r join deleted d on r.UID_OrgRoot = d.UID_OrgRoot where d.IsTopDown <> r.IsTopDown and d.UID_OrgRoot like '___-V-%' ) begin4 raiserror( '#LDS#Direction of inheritance cannot be changed, because it''s a default role.|', 18, 2) with nowait end  if update (IsPersonAssignOnce) begin5 if exists (select top 1 1 from OrgRoot r join deleted d on r.UID_OrgRoot = d.UID_OrgRoot where r.IsPersonAssignOnce = 1 and d.UID_OrgRoot like '___-V-%'6 ) begin raiserror( '#LDS#IsPersonAssignOnce cannot be set, because it''s a default role.|', 18, 2) with nowait end end if update (IsPersonAssignOnce) 7begin if exists (select top 1 1 from OrgRoot r join deleted d on r.UID_OrgRoot = d.UID_OrgRoot where r.IsPersonAssignOnce = 1 and exists (select top 1 81 from PersonInBaseTree pib join BaseTree b on pib.UID_Org = b.UID_Org and b.UID_OrgRoot = r.UID_OrgRoot group by pib.UID_Person having count(*) > 1 ) 9) begin raiserror( '#LDS#IsPersonAssignOnce cannot be set, because at least one person is assigned more than once.|', 18, 2) with nowait end end  declare10 @DBQueueElements_01 QBM_YDBQueueRaw insert into @DBQueueElements_01 (object, subobject, genprocid) select x.uid, null, @GenProcID from (select r.UID_OrgRoot11 as uid from OrgRoot r join deleted d on r.UID_OrgRoot = d.UID_OrgRoot where d.IsTopDown <> r.IsTopDown and d.UID_OrgRoot not like '___-V-%' ) as x exec12 QBM_PDBQueueInsert_bulk 'QER-K-OrgROOT', @DBQueueElements_01 END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END13 CATCH ende: return end 14