2026-01-23 08:59:51 -05:00
|
|
|
CREATE OR ALTER PROCEDURE [dbo].[EmergencyAccess_DeleteManyById]
|
2026-01-29 16:09:53 -05:00
|
|
|
@EmergencyAccessIds [dbo].[GuidIdArray] READONLY
|
2026-01-23 08:59:51 -05:00
|
|
|
AS
|
|
|
|
|
BEGIN
|
|
|
|
|
SET NOCOUNT ON
|
|
|
|
|
|
2026-01-29 16:09:53 -05:00
|
|
|
-- track GranteeIds for bumping revision date prior to deletion
|
|
|
|
|
DECLARE @GranteeIds AS TABLE (UserId UNIQUEIDENTIFIER)
|
|
|
|
|
|
|
|
|
|
-- this matches the logic in User_BumpAccountRevisionDateByEmergencyAccessGranteeId
|
|
|
|
|
INSERT INTO @GranteeIds
|
|
|
|
|
(UserId)
|
|
|
|
|
SELECT DISTINCT GranteeId
|
|
|
|
|
FROM
|
|
|
|
|
[dbo].[EmergencyAccess] EA
|
|
|
|
|
WHERE EA.Id IN (SELECT Id
|
|
|
|
|
FROM @EmergencyAccessIds
|
|
|
|
|
WHERE EA.[Status] = 2 )
|
|
|
|
|
|
2026-01-23 08:59:51 -05:00
|
|
|
DECLARE @BatchSize INT = 100
|
|
|
|
|
|
|
|
|
|
-- Delete EmergencyAccess Records
|
|
|
|
|
WHILE @BatchSize > 0
|
|
|
|
|
BEGIN
|
|
|
|
|
|
|
|
|
|
DELETE TOP(@BatchSize) EA
|
|
|
|
|
FROM
|
|
|
|
|
[dbo].[EmergencyAccess] EA
|
2026-01-29 16:09:53 -05:00
|
|
|
INNER JOIN
|
2026-01-23 08:59:51 -05:00
|
|
|
@EmergencyAccessIds EAI ON EAI.Id = EA.Id
|
|
|
|
|
|
|
|
|
|
SET @BatchSize = @@ROWCOUNT
|
|
|
|
|
END
|
2026-01-29 16:09:53 -05:00
|
|
|
|
|
|
|
|
-- Bump AccountRevisionDate for affected users after deletions
|
|
|
|
|
Exec [dbo].[User_BumpManyAccountRevisionDates]
|
|
|
|
|
(
|
|
|
|
|
SELECT [UserId]
|
|
|
|
|
FROM @GranteeIds
|
|
|
|
|
)
|
2026-01-23 08:59:51 -05:00
|
|
|
END
|
|
|
|
|
GO
|