diff --git a/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj b/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj
index 44fa7e9f1..64793a5ab 100644
--- a/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj
+++ b/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj
@@ -202,6 +202,7 @@
+
diff --git a/WebAPI/LearningHub.Nhs.Database/Scripts/LH Database Scripts/Move CC resource to a custom catalogue.sql b/WebAPI/LearningHub.Nhs.Database/Scripts/LH Database Scripts/Move CC resource to a custom catalogue.sql
new file mode 100644
index 000000000..b94b39251
--- /dev/null
+++ b/WebAPI/LearningHub.Nhs.Database/Scripts/LH Database Scripts/Move CC resource to a custom catalogue.sql
@@ -0,0 +1,76 @@
+BEGIN TRY
+ BEGIN TRANSACTION;
+
+ DECLARE @CatalogueId INT = 0; --this is catalog ID in the admin page
+ DECLARE @ResourceOwnerId INT = 0; -- this is CreateUserId of the resources to be moved.
+ DECLARE @NodePathId INT;
+ DECLARE @NewNodeId INT;
+ DECLARE @NextDisplayOrder INT;
+
+ Select @NodePathId = np.Id from hierarchy.CatalogueNodeVersion cnv
+ inner join hierarchy.NodeVersion nv ON cnv.NodeVersionId = nv.Id
+ inner join hierarchy.Node n ON nv.NodeId = n.Id
+ inner join hierarchy.NodePath np ON n.Id = np.NodeId
+ Where cnv.Id = @CatalogueId and cnv.Deleted = 0 and nv.Deleted = 0 and n.Deleted = 0 and np.Deleted=0;
+
+ -- Get the NodeId for the new catalogue
+ SELECT @NewNodeId = NodeId FROM [hierarchy].[NodePath] WHERE Id = @NodePathId AND Deleted = 0;
+
+ -- Get the current max DisplayOrder for that Node
+ SELECT @NextDisplayOrder = ISNULL(MAX(DisplayOrder), 0) FROM [hierarchy].[NodeResource] WHERE NodeId = @NewNodeId AND Deleted = 0;
+
+ DECLARE @UpdatedResources TABLE (ResourceId INT);
+
+ INSERT INTO @UpdatedResources (ResourceId)
+ SELECT DISTINCT rr.ResourceId FROM [resources].[ResourceReference] rr
+ INNER JOIN [resources].[Resource] r
+ ON rr.ResourceId = r.Id
+ WHERE r.CreateUserId = @ResourceOwnerId AND r.Deleted = 0 AND rr.CreateUserId = @ResourceOwnerId AND rr.Deleted = 0 AND rr.NodePathId = 1;
+
+ -- Update ResourceReference to point to new catalogue
+ UPDATE rr
+ SET rr.NodePathId = @NodePathId
+ FROM [resources].[ResourceReference] rr
+ INNER JOIN @UpdatedResources ur
+ ON rr.ResourceId = ur.ResourceId
+ WHERE rr.CreateUserId = @ResourceOwnerId
+ AND rr.Deleted = 0
+ AND rr.NodePathId = 1;
+
+ -- Update NodeResource with new NodeId and incrementing DisplayOrder
+ ;WITH Ordered AS
+ (
+ SELECT
+ nr.ResourceId,
+ ROW_NUMBER() OVER (ORDER BY nr.ResourceId) AS RowNum
+ FROM [hierarchy].[NodeResource] nr
+ INNER JOIN @UpdatedResources ur
+ ON nr.ResourceId = ur.ResourceId
+ WHERE nr.NodeId = 1
+ AND nr.CreateUserId = @ResourceOwnerId
+ AND nr.Deleted = 0
+ )
+ UPDATE nr
+ SET nr.NodeId = @NewNodeId,nr.DisplayOrder = @NextDisplayOrder + o.RowNum
+ FROM [hierarchy].[NodeResource] nr
+ INNER JOIN Ordered o ON nr.ResourceId = o.ResourceId;
+
+
+ --update noderesourcelookup(Im not sure this is absolutely necessary)
+ update nrl set nrl.NodeId=@NewNodeId FROM [hierarchy].[NodeResourceLookup] nrl
+ INNER JOIN @UpdatedResources ur ON nrl.ResourceId = ur.ResourceId
+ WHERE nrl.CreateUserId = @ResourceOwnerId AND nrl.Deleted = 0
+
+ -- Show updated resources
+ SELECT DISTINCT rv.ResourceId, rv.Title FROM [resources].[ResourceVersion] rv
+ INNER JOIN @UpdatedResources ur ON rv.ResourceId = ur.ResourceId;
+
+ COMMIT TRANSACTION;
+END TRY
+BEGIN CATCH
+ ROLLBACK TRANSACTION;
+
+ SELECT
+ ERROR_NUMBER() AS ErrorNumber,
+ ERROR_MESSAGE() AS ErrorMessage;
+END CATCH;
\ No newline at end of file