You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
181 lines
3.9 KiB
181 lines
3.9 KiB
-- Collection_ReadWithGroupsAndUsersByOrganizationId |
|
IF OBJECT_ID('[dbo].[Collection_ReadWithGroupsAndUsersByOrganizationId]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[Collection_ReadWithGroupsAndUsersByOrganizationId] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[Collection_ReadWithGroupsAndUsersByOrganizationId] |
|
@OrganizationId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
EXEC [dbo].[Collection_ReadByOrganizationId] @OrganizationId |
|
|
|
EXEC [dbo].[CollectionGroup_ReadByOrganizationId] @OrganizationId |
|
|
|
EXEC [dbo].[CollectionUser_ReadByOrganizationId] @OrganizationId |
|
|
|
END |
|
GO |
|
|
|
|
|
-- Collection_ReadWithGroupsAndUsersByUserId |
|
IF OBJECT_ID('[dbo].[Collection_ReadWithGroupsAndUsersByUserId]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[Collection_ReadWithGroupsAndUsersByUserId] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[Collection_ReadWithGroupsAndUsersByUserId] |
|
@UserId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
DECLARE @TempUserCollections TABLE( |
|
Id UNIQUEIDENTIFIER, |
|
OrganizationId UNIQUEIDENTIFIER, |
|
Name VARCHAR(MAX), |
|
CreationDate DATETIME2(7), |
|
RevisionDate DATETIME2(7), |
|
ExternalId NVARCHAR(300), |
|
ReadOnly BIT, |
|
HidePasswords BIT) |
|
|
|
INSERT INTO @TempUserCollections EXEC [dbo].[Collection_ReadByUserId] @UserId |
|
|
|
SELECT |
|
* |
|
FROM |
|
@TempUserCollections C |
|
|
|
SELECT |
|
CG.* |
|
FROM |
|
[dbo].[CollectionGroup] CG |
|
INNER JOIN |
|
@TempUserCollections C ON C.[Id] = CG.[CollectionId] |
|
|
|
SELECT |
|
CU.* |
|
FROM |
|
[dbo].[CollectionUser] CU |
|
INNER JOIN |
|
@TempUserCollections C ON C.[Id] = CU.[CollectionId] |
|
|
|
END |
|
GO |
|
|
|
|
|
-- CollectionUser_ReadByOrganizationId |
|
CREATE PROCEDURE [dbo].[CollectionUser_ReadByOrganizationId] |
|
@OrganizationId UNIQUEIDENTIFIER |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
SELECT |
|
CU.* |
|
FROM |
|
[dbo].[CollectionUser] CU |
|
INNER JOIN |
|
[dbo].[OrganizationUser] OU ON OU.[Id] = CU.[OrganizationUserId] |
|
WHERE |
|
OU.[OrganizationId] = @OrganizationId |
|
|
|
END |
|
GO |
|
|
|
|
|
-- Collection_ReadByIds |
|
IF OBJECT_ID('[dbo].[Collection_ReadByIds]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[Collection_ReadByIds] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[Collection_ReadByIds] |
|
@Ids AS [dbo].[GuidIdArray] READONLY |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
IF (SELECT COUNT(1) FROM @Ids) < 1 |
|
BEGIN |
|
RETURN(-1) |
|
END |
|
|
|
SELECT |
|
* |
|
FROM |
|
[dbo].[Collection] |
|
WHERE |
|
[Id] IN (SELECT [Id] FROM @Ids) |
|
END |
|
GO |
|
|
|
|
|
-- Collection_DeleteByIds |
|
IF OBJECT_ID('[dbo].[Collection_DeleteByIds]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[Collection_DeleteByIds] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[Collection_DeleteByIds] |
|
@Ids AS [dbo].[GuidIdArray] READONLY |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
DECLARE @OrgIds AS [dbo].[GuidIdArray] |
|
|
|
INSERT INTO @OrgIds (Id) |
|
SELECT |
|
[OrganizationId] |
|
FROM |
|
[dbo].[Collection] |
|
WHERE |
|
[Id] in (SELECT [Id] FROM @Ids) |
|
GROUP BY |
|
[OrganizationId] |
|
|
|
DECLARE @BatchSize INT = 100 |
|
|
|
-- Delete Collection Groups |
|
WHILE @BatchSize > 0 |
|
BEGIN |
|
BEGIN TRANSACTION CollectionGroup_DeleteMany |
|
DELETE TOP(@BatchSize) |
|
FROM |
|
[dbo].[CollectionGroup] |
|
WHERE |
|
[CollectionId] IN (SELECT [Id] FROM @Ids) |
|
|
|
|
|
SET @BatchSize = @@ROWCOUNT |
|
COMMIT TRANSACTION CollectionGroup_DeleteMany |
|
END |
|
|
|
-- Reset batch size |
|
SET @BatchSize = 100 |
|
|
|
-- Delete Collections |
|
WHILE @BatchSize > 0 |
|
BEGIN |
|
BEGIN TRANSACTION Collection_DeleteMany |
|
DELETE TOP(@BatchSize) |
|
FROM |
|
[dbo].[Collection] |
|
WHERE |
|
[Id] IN (SELECT [Id] FROM @Ids) |
|
|
|
SET @BatchSize = @@ROWCOUNT |
|
COMMIT TRANSACTION CollectionGroup_DeleteMany |
|
END |
|
|
|
EXEC [dbo].[User_BumpAccountRevisionDateByOrganizationIds] @OrgIds |
|
END |
|
GO |