Back to OIM Explorer

dbo.ADS_TDADSGroupInADSGroup

Database TriggerSQL_TRIGGERSandbox DB

Database Trigger on ADSGroupInADSGroup. Bulk DBQueue insert -> ADS-K-ADSGroupInADSGroup / ADS_ZGroupInADSGroup at line 10; References QBM_PDBQueueInsert_Bulk; Trigger parent table: ADSGroupInADSGroup

Source: sandbox-db sys.sql_modules

Source size: 1.733 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 -> ADS-K-ADSGroupInADSGroup / ADS_ZGroupInADSGroup at line 10
  • References QBM_PDBQueueInsert_Bulk
  • Trigger parent table: ADSGroupInADSGroup

Typed Edges

  • queues DBQueue task ADS_ZGroupInADSGroup at line 10 Bulk DBQueue insert -> ADS-K-ADSGroupInADSGroup / ADS_ZGroupInADSGroup at line 10
  • trigger on table ADSGroupInADSGroup Trigger parent table: ADSGroupInADSGroup
  • references source dbo.QBM_FGIBitPatternXMarkedForDel source text reference
  • 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
  • references source dbo.ADS_TDAdsGroup source text reference

Complete Source

SQL73 lines
1CREATE trigger ADS_TDADSGroupInADSGroup2  ON ADSGroupInADSGroup FOR3DELETE NOT FOR Replication4AS5BEGIN6  IF EXISTS(7    SELECT TOP 1 18    FROM deleted)9  GOTO start10  RETURN start:11  BEGIN TRY12    DECLARE @QBM_BitPatternXMarkedForDel_OutStanding int = dbo.QBM_FGIBitPatternXMarkedForDel('|OutStanding|',13    0)14    DECLARE @GenProcID varchar(38) = dbo.QBM_FGISessionContext('')15    IF EXISTS(16      SELECT TOP 1 117      FROM deleted i18      JOIN ADSGroup g19        ON i.UID_ADSGroupParent = g.UID_ADSGroup AND 1 = g.HasReadOnlyMemberships AND dbo.QBM_FGISessionContext('Fullsync') = '' AND i.XMarkedForDeletion20    & @QBM_BitPatternXMarkedForDel_OutStanding = 0)21    BEGIN22      RAISERROR('#LDS#Cannot delete {0} because assignment to groups with read only memberships are not permitted.|ADSGroupInADSGroup|',23      18,24      2)25        WITH nowait26    END27    DECLARE @DBQueueElements_01 QBM_YDBQueueRaw28    INSERT INTO @DBQueueElements_01(object,29    subobject,30    genprocid)31    SELECT32      x.uid,33      NULL,34      @GenProcID35    FROM(36    SELECT uid_ADSGroupParent AS uid37    FROM deleted38    UNION39    SELECT UID_ADSGroupChild40    FROM deleted41    UNION42    SELECT co.uid_ADSGroupParent AS uid43    FROM deleted i44    JOIN ADSGroupcollection co45      ON i.UID_ADSGroupChild = co.UID_ADSGroupChild46    UNION47    SELECT co.uid_ADSGroupParent48    FROM deleted i49    JOIN ADSGroupcollection co50      ON i.UID_ADSGroupParent = co.UID_ADSGroupChild51    UNION52    SELECT co.UID_ADSGroupChild53    FROM deleted i54    JOIN ADSGroupcollection co55      ON i.UID_ADSGroupChild = co.UID_ADSGroupParent56    UNION57    SELECT co.UID_ADSGroupChild58    FROM deleted i59    JOIN ADSGroupcollection co60      ON i.UID_ADSGroupParent = co.UID_ADSGroupParent) AS x61    EXEC QBM_PDBQueueInsert_Bulk 'ADS-K-ADSGroupInADSGroup',62      @DBQueueElements_0163  END TRY64  BEGIN CATCH65    EXEC QBM_PSessionErrorAdd DEFAULT66    RAISERROR('',67    18,68    1)69      WITH NOWAIT70  END CATCH71  ende:72  RETURN73END
Open raw exported source
SQL ยท Raw13 lines
1create   trigger ADS_TDADSGroupInADSGroup on ADSGroupInADSGroup  for Delete not for Replication as begin  if exists (select top 1 1 from deleted2) goto start return start: BEGIN TRY declare @QBM_BitPatternXMarkedForDel_OutStanding int = dbo.QBM_FGIBitPatternXMarkedForDel('|OutStanding|', 0)  declare3 @GenProcID varchar(38) = dbo.QBM_FGISessionContext('')  if exists (select top 1 1 from deleted i join ADSGroup g on i.UID_ADSGroupParent = g.UID_ADSGroup4 and 1 = g.HasReadOnlyMemberships and dbo.QBM_FGISessionContext ('Fullsync') = '' and i.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_OutStanding =5 0 ) begin raiserror( '#LDS#Cannot delete {0} because assignment to groups with read only memberships are not permitted.|ADSGroupInADSGroup|', 18, 2) with6 nowait end declare @DBQueueElements_01 QBM_YDBQueueRaw insert into @DBQueueElements_01 (object, subobject, genprocid) select x.uid, null, @GenProcID from7 ( select uid_ADSGroupParent as uid from deleted union select UID_ADSGroupChild from deleted union  select co.uid_ADSGroupParent as uid from deleted i 8join ADSGroupcollection co on i.UID_ADSGroupChild = co.UID_ADSGroupChild  union select co.uid_ADSGroupParent from deleted i join ADSGroupcollection co 9on i.UID_ADSGroupParent = co.UID_ADSGroupChild  union select co.UID_ADSGroupChild from deleted i join ADSGroupcollection co on i.UID_ADSGroupChild = co.UID_ADSGroupParent10  union select co.UID_ADSGroupChild from deleted i join ADSGroupcollection co on i.UID_ADSGroupParent = co.UID_ADSGroupParent ) as x exec QBM_PDBQueueInsert_Bulk11 'ADS-K-ADSGroupInADSGroup', @DBQueueElements_01 END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH ende:12 return end 13