CREATE PROCEDURE [dbo].[CollectionCipher_UpdateCollectionsAdmin] @CipherId UNIQUEIDENTIFIER, @OrganizationId UNIQUEIDENTIFIER, @CollectionIds AS [dbo].[GuidIdArray] READONLY AS BEGIN SET NOCOUNT ON ;WITH [AvailableCollectionsCTE] AS( SELECT Id FROM [dbo].[Collection] WHERE OrganizationId = @OrganizationId ) MERGE [dbo].[CollectionCipher] AS [Target] USING @CollectionIds AS [Source] ON [Target].[CollectionId] = [Source].[Id] AND [Target].[CipherId] = @CipherId WHEN NOT MATCHED BY TARGET AND [Source].[Id] IN (SELECT [Id] FROM [AvailableCollectionsCTE]) THEN INSERT VALUES ( [Source].[Id], @CipherId ) WHEN NOT MATCHED BY SOURCE AND [Target].[CipherId] = @CipherId THEN DELETE ; IF @OrganizationId IS NOT NULL BEGIN EXEC [dbo].[User_BumpAccountRevisionDateByOrganizationId] @OrganizationId END END