Quickly delete Umbraco nodes by document type in SQL

Ever needed to delete all nodes by a document type or delete all nodes from the recycle bin in Umbraco? This little script should help.

Delete Umbraco nodes by Document Type Alias

BEGIN TRAN DECLARE @Nodes TABLE (NodeId int) INSERT INTO @Nodes (NodeId) SELECT top 1000 n.id FROM cmsContent C INNER JOIN cmsContentType CT ON C.contentType = CT.nodeId INNER JOIN umbracoNode N ON C.nodeId = N.id WHERE CT.alias = '[Your Document Type Alias Here]' select id, [text] from umbracoNode where id in (select NodeId from @Nodes) delete from cmsPreviewXml where nodeId in (select NodeId from @Nodes) delete from cmsContentVersion where contentId in (select NodeId from @Nodes) delete from cmsDocument where nodeId in (select NodeId from @Nodes) delete from cmsContentXML where nodeId in (select NodeId from @Nodes) delete from cmsContent where nodeId in (select NodeId from @Nodes) delete from cmsPropertyData where contentNodeId in (select NodeId from @Nodes) delete from umbracoRelation where parentId in (select NodeId from @Nodes) OR childId in (select NodeId from @Nodes) delete from cmsTagRelationship where nodeId in (select NodeId from @Nodes) delete from umbracoNode where id in (select NodeId from @Nodes) DELETE FROM @Nodes ROLLBACK TRAN

Delete Umbraco nodes from recycle bin

BEGIN TRAN DECLARE @Nodes TABLE (NodeId int) INSERT INTO @Nodes (NodeId) SELECT top 1000 n.id FROM umbracoNode n WHERE n.path like '%-20%' and id!=-20 select id, [text] from umbracoNode where id in (select NodeId from @Nodes) delete from cmsPreviewXml where nodeId in (select NodeId from @Nodes) delete from cmsContentVersion where contentId in (select NodeId from @Nodes) delete from cmsDocument where nodeId in (select NodeId from @Nodes) delete from cmsContentXML where nodeId in (select NodeId from @Nodes) delete from cmsContent where nodeId in (select NodeId from @Nodes) delete from cmsPropertyData where contentNodeId in (select NodeId from @Nodes) delete from umbracoRelation where parentId in (select NodeId from @Nodes) OR childId in (select NodeId from @Nodes) delete from cmsTagRelationship where nodeId in (select NodeId from @Nodes) delete from umbracoNode where id in (select NodeId from @Nodes) DELETE FROM @Nodes ROLLBACK TRAN

Subscribe to TSD

Don’t miss out on the latest posts. Sign up now to get access to the library of members-only posts.
jamie@example.com
Subscribe