namespace FrameworkDAL.Query.ChangeTracking { /// /// SQL constants for TEVENTLOGCHANGE. /// Required indexes (see migration AuditChangeTracking_Tables.sql): /// IX_TEVENTLOGCHANGE_EVENTLOGID — fast lookup by event log row /// IX_TEVENTLOGCHANGE_TENANTID_FIELDNAME — fast field-filter queries /// public static class ChangeTrackingQB { /// /// Bulk-inserts one change record per field difference. /// Called once per EventLogId; repeated per row in a loop inside ChangeTrackingDAL. /// Using individual INSERTs (not TVP) because change counts are small (typically <20 per event). /// public const string INSERT_CHANGE = @" INSERT INTO TEVENTLOGCHANGE (EVENTLOGID, FIELDNAME, OLDVALUE, NEWVALUE, TENANTID) VALUES (@EventLogId, @FieldName, @OldValue, @NewValue, @TenantId)"; /// /// Returns all change records for a given audit event, newest row first. /// public const string GET_BY_EVENTLOG_ID = @" SELECT EVENTLOGCHANGEID AS EventLogChangeId, EVENTLOGID AS EventLogId, FIELDNAME AS FieldName, OLDVALUE AS OldValue, NEWVALUE AS NewValue, TENANTID AS TenantId, CREATEDON AS CreatedOn FROM TEVENTLOGCHANGE WHERE EVENTLOGID = @EventLogId AND TENANTID = @TenantId ORDER BY EVENTLOGCHANGEID"; } }